我需要从文件名为 enh0.dat、enh1.dat、enh2.dat、...的文件中加载数据,最多 128 次。所以我需要将文件名存储在字符串变量中并从文件中加载数据,文件名存储在字符串变量中,然后将加载的数据存储在指定的变量中以供以后绘制。但是 MATLABload
命令将数据加载到具有特定名称(包含数据的文件的名称)的变量中,这不允许我自动使用 plot 命令。
是否可以将我需要从中加载数据的文件的名称存储在字符串变量中?我还检查了这个
MATLAB 新手:当文件名存储在字符串中时读取文件时出现问题,但它看起来对我不起作用。尝试绘制以下结果时出现此错误textscan
:
???使用 ==> plot 时出错 从单元格转换为双精度是不可能的。
这是使用的代码:
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
循环中增加 的值。如何修复上述代码?