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

4 vues (au cours des 30 derniers jours)
ichiro obayashi
ichiro obayashi le 20 Mai 2017
Commenté : ichiro obayashi le 20 Mai 2017
t_0001~t_0500というデータがあり、これを連続でロードしたいと考えています。 データ内に文字と数字が混在していても連続処理は可能でしょうか?

Réponse acceptée

mizuki
mizuki le 20 Mai 2017
ファイル名に文字と数字が混在している場合、数字を文字列として認識させる必要があります。数字を文字列に変換するには 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 commentaire
ichiro obayashi
ichiro obayashi le 20 Mai 2017
ありがとうございました。 上記の通りのコードで連続処理できました。 この様な簡単な質問にも丁寧にお答えて頂きまして感謝いたします。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur データ型の変換 dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!