循环访问数组 - 返回错误"Attempted to access A(:,3); index out of bounds because size(A)=[4,2]"



我是 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,但您正在沿着第二个维度循环。

相关内容

最新更新