私は、.txtデータを読み込むコードを書くのに苦労しています。私はすべてのファイル名が 'img000.txt'から 'img4200.txt'までのディレクトリにあります。各ファイルは同じサイズ(480x640)の2次元配列であり、最終的に3次元データキューブを塗りたいが、最初にすべてのデータを読み込む必要がある。Matlabの.txtファイルをロードするための範囲チェックが失敗する
for i = 1:4200
i
if i<10
A = csvread(['img000',num2str(i),'.txt']);
elseif 10<=i<100
A = csvread(['img00',num2str(i),'.txt']); ***
elseif 100<=i<1000
A = csvread(['img0',num2str(i),'.txt']);
else i>=1000
A = csvread(['img',num2str(i),'.txt']);
end
end
コードがi=100
を印刷し、その後、私が***追加した行に見つからないファイルのエラーメッセージを表示します。コードは存在しないファイルimg00100.txt
を探していますが、なぜこれを行うのか分かりません。
私は、異なるバージョンのif、elseif、statements、およびより大きい、より小さい演算子を使って遊んでいます。私もevalとloadコマンドを使ってみました。
ありがとうございます。
私の周りにいくつかの重複があると確信しているが、[フォーマット仕様](https://www.mathworks.com/help/matlab/ref/num2str.html#inputarg_formatSpec)で遊んでみてくださいパラメータ。具体的には、 'num2str(i、 '%04d')'です。そうすれば 'if/else'は必要ありません。 – beaker