我是 MATLAB 的新手,我正在尝试编写一些代码来迭代导入的 Excel 数组并分别对数组的每一列进行计算。 我收到错误"试图访问 A(:,3);索引超出界限,因为 size(A)=[4,2]",我不确定为什么,因为我试图给出输出变量矩阵维度。 这是代码:
filename = 'allsets.xlsx';
x1Range = 'B1:C5';
sheet = 1;
A = xlsread(filename,sheet,x1Range);
Mu1 = zeros(size(A));
Mu2 = zeros(size(B));
for i = 1:length(A)
% class mean
Mu1(:,i)=mean(A(:,i))';
end
x2Range = 'B6:C9';
B = xlsread(filename,sheet,x2Range);
for i = 1:length(B)
Mu2(:,i)=mean(B(:,i))';
end
有关如何解决此错误的任何建议将不胜感激。 谢谢!
使用 size(A,2)
而不是 length(A)
。 length
返回最大维度的大小,即案例中的行数
length
为您提供矩阵最长的维度中的大小。在您的情况下,A
是 3x2,因此length
返回 3,但您正在沿着第二个维度循环。