通过数组遍历 – 返回错误“试图访问A(:,3); 指数越界,因为大小(A)= “

我是MATLAB的新手,我正在尝试编写一些代码来遍历导入的Excel数组,并分别对数组的每一列进行计算。 我收到错误“试图访问A(:,3);索引超出范围,因为大小(A)= [4,2]”,我不知道为什么,因为我已经试图给输出variablesmatrix尺寸。 这里是代码:

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 

任何build议如何解决这个错误将非常感激。 谢谢!

使用size(A,2)而不是length(A)length返回最大尺寸的大小,这是您的案例中的行数

length会给出matrix最长的维度的大小。 在你的情况下, A是3×2,所以length返回3,但你沿着第二维循环。