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

t_0001~t_0500というデータがあり、これを連続でロードしたいと考えています。 データ内に文字と数字が混在していても連続処理は可能でしょうか?

 Risposta accettata

mizuki
mizuki il 20 Mag 2017

3 voti

ファイル名に文字と数字が混在している場合、数字を文字列として認識させる必要があります。数字を文字列に変換するには 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 Commento

ichiro obayashi
ichiro obayashi il 20 Mag 2017
ありがとうございました。 上記の通りのコードで連続処理できました。 この様な簡単な質問にも丁寧にお答えて頂きまして感謝いたします。

Accedi per commentare.

Più risposte (0)

Categorie

Prodotti

Community Treasure Hunt

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

Start Hunting!