matlab为什么会出现Error using ==> horzcat 错误?

p=xlsread('RGB_camera_1.xlsx',1,'C1:E500') ;
%建模用的rgb值
r=p;g=p;b=p;
r(:,[2,3])=[];
g(:,[1,3])=[];
b(:,[1,2])=[];
rg=r.*g;rb=r.*b;gb=r.*b;
r2=r.^2;g2=g.^2;b2=b.^2;
rgb=rg.*b;
r3=r.^3;g3=r.^3;b3=b.^3;
r2g2=r2.*g2;r2b2=r2.*b2;g2b2=g2.*b2;
r2gb=r2.*gb;rg2b=g2.*rb;rgb2=rg.*b2;
a=ones(500,1);
p4=[a,r,g,b];
p7=[a,r,g,b,rg,rb,gb];
p11=[a,r,g,b,rg,rb,gb,r2,g2,b2,rgb];
p14=[a,r,g,b,rg,rb,gb,r2,g2,b2,rgb,r3,g3,b3];
p20=[a,r,g,b,rg,rb,gb,r2,g2,b2,rgb,r3,g3,b3,r2g2,r2b2,g2b2,r2gb,rg2b,rgb2];
i=xlsread('CIELAB平均值.xlsx',1,'C1:E500' );
x=i;y=i;z=i;
x(:,[2,3])=[];
y(:,[1,3])=[];
z(:,[1,2])=[];
xy=x.*y;xz=x.*z;yz=y.*z;
x2=x.^2;y2=y.^2;z2=z.^2;
xyz=xy.*z;
x3=x.^3;y3=y.^3;z3=z.^3;
x2y2=x2.*y2;x2z2=x2.*z2;y2z2=y2.*z2;
x2yz=x2.*yz;xy2z=y2.*xz;xyz2=xy.*z2;
a2=ones(132,1); %验证数据
i4=[a2,x,y,z];
i7=[a2,x,y,z,xy,xz,yz];
i11=[a2,x,y,z,xy,xz,yz,x2,y2,z2,xyz];
i14=[a2,x,y,z,xy,xz,yz,x2,y2,z2,xyz,x3,y3,z3];
i20=[a2,x,y,z,xy,xz,yz,x2,y2,z2,xyz,x3,y3,z3,x2y2,x2z2,y2z2,x2yz,xy2z,xyz2]
t=xlsread('RGB_camera_1(检验).xlsx',1,'c1:e132'); %检验用的rgb 值
u=i;
A=t;
B=pinv(u); %矩阵求逆
Vk=B*A ; %得出系数矩阵
I=ik;
o=yzrgb*Vk %通过转换得到的LAB
最后运行过出现Error using ==> horzcat
All matrices on a row in the bracketed expression must have the
same number of rows.
求高手帮忙啊~

因为你给矩阵赋值的时候,数组长度不一致。。。追问

那应该怎么改呢,我才开始学,求助啊 ~

追答

。。。这种一般要逐个排查,看是哪一个变量长度不对才行。。。

追问

好的,我试试,谢谢~

温馨提示:答案为网友推荐,仅供参考
相似回答