Matlab错误 - 矩阵尺寸必须一致

时间:2014-06-04 05:36:36

标签: matlab matrix

cc=imread('<a href=“http://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Pavlovsk_Railing_of_bridge_Yellow_palace_Winter.jpg/250px-Pavlovsk_Railing_of_bridge_Yellow_palace_Winter.jpg”>wintersm.jpg</a>'); 
c=rgb2gray(cc);
x=ones(256,1)*[1:256];
c2=double(c).*(x/2+50)+(1-double(c)).*x/2;
c3=uint8(255*mat2gray(c2));
t=graythresh(c3);
ct=im2bw(c3,t);

这是我编写的用于阈值图像的代码但由于错误而无法执行#34; ==&GT;时 矩阵尺寸必须一致。 &#34; 。我是matlab的新手,我无法弄清楚如何解决这个问题。请帮忙。

2 个答案:

答案 0 :(得分:1)

我运行了你的代码,但在c2=double(c).*(x/2+50)+(1-double(c)).*x/2;之前添加了以下行,我添加了这个:

size(x)
size(c)

你得到以下打印输出:

ans =
  256   256
ans =
  169   250

基本上说,图像不是您认为的尺寸,而是混合矩阵尺寸。

答案 1 :(得分:1)

我查看了图片,大小为169x250。因此size(c) = [169 250]size(x) = [256 256]。由于.*c之间的x操作需要两者都具有相同的大小,因此它会给出错误。

重新定义x,使其大小与c

的大小相匹配