ファイル名が enh0.dat、enh1.dat、enh2.dat、... のファイルから最大 128 回データをロードする必要があります。そのため、ファイル名を文字列変数に格納し、名前が文字列変数に格納されているファイルからデータをロードし、後でプロットするためにロードされたデータを指定された変数に格納する必要があります。しかし、MATLABload
コマンドはデータを特定の名前 (データを含むファイルの名前) の変数にロードするため、plot コマンドの使用を自動化できません。
データをロードする必要があるファイルの名前を文字列変数に格納することはできますか? このMATLAB newbie: problem reading in file when the file name is stored in a stringもチェックしまし
たが、うまくいかないようです。の結果をプロットしようとすると、このエラーが発生しますtextscan
。
??? ==> plot の使用エラー cell から double への変換はできません。
これは使用されるコードです:
indx = [1:128];
enh_file_cntr = 0;
enh_pre = 'enh';
gain_pre = 'gain';
[enh_file_cntr_str, errmsg1] = sprintf('%d', enh_file_cntr);
enh_file_name = strcat('enh', enh_file_cntr_str, '.dat');
[gain_file_cntr_str, errmsg1] = sprintf('%d', enh_file_cntr);
gain_file_name = strcat('enh', gain_file_cntr_str, '.dat');
fid_enh = fopen(enh_file_name, 'r');
fid_gain = fopen(gain_file_name, 'r');
enh_data = textscan(fid_enh, '%f', 128);
gain_data = textscan(fid_gain, '%f', 128);
subplot(2,3,1);
plot(indx, enh_data, 'b', indx, gain_data, 'r');
これが機能する場合enh_file_cntr
、for
ループ内の値をインクリメントします。上記のコードを修正するにはどうすればよいですか?