【问题标题】:Matlab error - Matrix dimensions must agreeMatlab错误 - 矩阵尺寸必须一致
【发布时间】:2014-06-04 05:36:36
【问题描述】:
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);

这是我编写的用于阈值图像但由于错误“==>次而无法执行的代码 矩阵尺寸必须一致。 " 。我是 matlab 新手,我不知道如何解决这个问题。请帮助。

【问题讨论】:

  • 矩阵c的大小是多少。您在哪一行收到此错误?
  • 这意味着您的一项操作具有不同/不兼容的矩阵维度。你在哪一行得到错误?
  • 你认为double(c)在做什么?
  • 我在定义 c3 的行之后收到错误。

标签: matlab matrix


【解决方案1】:

我看了看图片,它的大小是 169x250 。因此size(c) = [169 250]size(x) = [256 256]。由于.*cx 之间的.* 操作需要它们的大小相同,因此它给出了错误。

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

【讨论】:

    【解决方案2】:

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

    size(x)
    size(c)
    

    你会得到以下打印输出:

    ans =
      256   256
    ans =
      169   250
    

    这本质上是说,图像不是您认为的大小,并且您正在混合矩阵大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      相关资源
      最近更新 更多