ホームタブのデータイ​ンポートをスクリプト​で呼び出したい

7 views (last 30 days)
和也
和也 on 4 Aug 2022
Commented: Kojiro Saito on 4 Aug 2022
下記のステップをスクリプトで実行したいと思います。
ホームタブにあるデータインポート機能をバックボーンで処理できる代替プロセスがあれば
そちらをご紹介頂ければと思います。
1.ホームタブにあるデータインポートをスクリプトで呼び出す(代替プロセスでも可)
2.データを全選択し選択データをインポート
3.インポートしたデータをワーク変数Tに格納する。
以上ご回答よろしくお願いします。

Answers (2)

Kojiro Saito
Kojiro Saito on 4 Aug 2022
Edited: Kojiro Saito on 4 Aug 2022
データのインポートははuiimportコマンドで起動できます。
ファイル名を指定して
uiimport('data.xlsx')
でファイルを取り込んだ状態にできます。
一度インポートして、「選択のインポート」から「関数の生成」をクリックします。
すると、デフォルトでimportfileという関数が生成されますので、それをimportfile.mというファイル名で保存します。
同じようなファイルを次回以降は
T = importfile('data.xlsx')
のようにデータのファイル名を変更して読み取れるようになります。
これが一番簡単だと思います。
インポートを経由せずにreadtablereadmatrixなどの関数を直接使うこともできます。
T = readtable('data.xlsx');
ファイルに応じてヘッダ行が何行かとか、カラム毎にどのデータ型で読み取るのかなどをdetectImportOpitonsを使ってオプション指定する必要がありますが、慣れてくるとこのほうが楽です。
  2 Comments
Kojiro Saito
Kojiro Saito on 4 Aug 2022
大かっこ[]で文字列を結合するか、fullfileでパスを結合することで実現できます。
T = readtable(fullfile(path, filename));
% または
T = readtable([path '\' file]) % Windowsの場合
T = readtable([path '/' file]) % MacかLinuxの場合
% または
T = readtable([path filesep file]) % Windows、mac、LinuxでもOK

Sign in to comment.


Hernia Baby
Hernia Baby on 4 Aug 2022
uiopenから関数にして読み込んでもいいですが、ひとつ例を書いておきます。
Files = dir("sample*.csv");
numfiles = length(Files);
for ii = 1:numfiles
zmat{ii,1} = readmatrix(sprintf('sample%i.csv', ii));
end
zmatにすべて格納しています
zmat
zmat = 4×1 cell array
{51×2 double} {51×2 double} {51×2 double} {51×2 double}
中身を取り出します
zmat{1,1}
ans = 51×2
0 0 0.0200 0.1253 0.0400 0.2487 0.0600 0.3681 0.0800 0.4818 0.1000 0.5878 0.1200 0.6845 0.1400 0.7705 0.1600 0.8443 0.1800 0.9048
今回はスクリプトとファイルが同じ場所にある前提で書いています。
任意の場所をUIで選びたい場合はuigetdir等をご使用ください。
その他気になる点ありましたらコメントにてお知らせください。
---------------------------------------------------------

Categories

Find more on 大きなファイルとビッグ データ in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!