ループ処理の中で、繰​​り返し番号つきのフ​ァ​イル名でデータを​ロードするにはどうし​たらよ​いでしょうか​?

2 ビュー (過去 30 日間)
ichiro obayashi
ichiro obayashi 2017 年 5 月 20 日
コメント済み: ichiro obayashi 2017 年 5 月 20 日
t_0001~t_0500というデータがあり、これを連続でロードしたいと考えています。 データ内に文字と数字が混在していても連続処理は可能でしょうか?

採用された回答

mizuki
mizuki 2017 年 5 月 20 日
ファイル名に文字と数字が混在している場合、数字を文字列として認識させる必要があります。数字を文字列に変換するには INT2STR 関数あるいは例えば '0' のように数字を直接シングルクォート ' で囲みます。
次のようなコードでいかがでしょうか。
for i=1:500
if (i < 10) % 10未満なら 00 を初めにつける
num = ['00', int2str(i)];
elseif(i < 100) % 10-99 なら 0 を初めにつける
num = ['0', int2str(i)];
else
num = int2str(i);
end
filename = ['t_0', num];
load(filename)
end
余談ですが、並列計算のツールボックス Parallel Computing Toolbox をお持ちの場合、FOR を PARFOR に変更することで、並列読み込みができます。読み込み時間が膨大にかかっている場合には時間短縮ができます。
  1 件のコメント
ichiro obayashi
ichiro obayashi 2017 年 5 月 20 日
ありがとうございました。 上記の通りのコードで連続処理できました。 この様な簡単な質問にも丁寧にお答えて頂きまして感謝いたします。

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

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeデータ型の変換 についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!