我在尝试绘制实验数据的频率响应时偶然发现了一个问题。我有幅度(21 * 101)的多维数组和频率扫描开始和结束值的数组。 (21 * 1)
此代码适用于以下数据:第一个单元格中的5667,第二个单元格中的5678等。但是它会像5.478e + 5和4.999e + 5这样的数据崩溃:
A = load('Amplitude.mat');
Amp = A.Amplitude;
Fs = load('Fs.mat')
Fe = load('Fe.mat')
for i = 1:1:21
f1 = Fs(i):10:Fe(i);//column 21*1
grid on
y1 = plot(f1,AmpA1(i,:));
hold on
end
f1
安装在数组中(如非指数形式的数字)21 * 1成为单个值,这会导致错误:
指数超出矩阵维度。
我试图使用sprintf()来改变指数形式 - 没有帮助。 拜托,您能告诉我如何解决它吗?
要测试的文件
答案 0 :(得分:2)
行
Fs = load('Fs.mat')
Fe = load('Fe.mat')
将变量Fs
和Fe
定义为标量结构,其中各个mat文件中的变量作为字段加载。使用任何大于1的值索引到Fs
和Fe
都会产生错误。
尝试改为
s = load('Fs.mat'); Fs = s.Fs;
s = load('Fe.mat'); Fe = s.Fe;
(这假设mat文件中感兴趣的变量分别命名为Fs
和Fe
。)