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

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

採用された回答

Kojiro Saito
Kojiro Saito 2022 年 8 月 4 日
編集済み: Kojiro Saito 2022 年 8 月 4 日
データのインポートははuiimportコマンドで起動できます。
ファイル名を指定して
uiimport('data.xlsx')
でファイルを取り込んだ状態にできます。
一度インポートして、「選択のインポート」から「関数の生成」をクリックします。
すると、デフォルトでimportfileという関数が生成されますので、それをimportfile.mというファイル名で保存します。
同じようなファイルを次回以降は
T = importfile('data.xlsx')
のようにデータのファイル名を変更して読み取れるようになります。
これが一番簡単だと思います。
インポートを経由せずにreadtablereadmatrixなどの関数を直接使うこともできます。
T = readtable('data.xlsx');
ファイルに応じてヘッダ行が何行かとか、カラム毎にどのデータ型で読み取るのかなどをdetectImportOpitonsを使ってオプション指定する必要がありますが、慣れてくるとこのほうが楽です。
  2 件のコメント
和也
和也 2022 年 8 月 4 日
ご回答ありがとうございます。
readtable(filename)のfilenameの箇所はpath+filenameを指定してフルパス状態にしたら
エラーが出てきますが良い対策方法はないでしょうか?
*.mフォルダとは別にあるファイルをインポート処理したいと考えてます。
Kojiro Saito
Kojiro Saito 2022 年 8 月 4 日
大かっこ[]で文字列を結合するか、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

サインインしてコメントする。

その他の回答 (1 件)

Hernia Baby
Hernia Baby 2022 年 8 月 4 日
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等をご使用ください。
その他気になる点ありましたらコメントにてお知らせください。
---------------------------------------------------------

カテゴリ

Help Center および File Exchangeファイルの操作 についてさらに検索

製品


リリース

R2019a

Community Treasure Hunt

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

Start Hunting!