找回密码
 注册
关于网站域名变更的通知
查看: 480|回复: 3
打印 上一主题 下一主题

关于Matrix dimensions must agree错误的问题

[复制链接]
  • TA的每日心情
    难过
    2019-11-20 15:02
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-5-27 15:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    Matrix dimensions must agree错误的中文解释是:矩阵的维数必须一致 出错原因:这是由于运算符(= + - / * 等)两边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运算符。matlab 通过“.”来区分矩阵运算和元素运算。 6 s) K; S; H- i
    ! Z6 L" t$ L! j* m
    我看了一些论坛讨论的这个错误,一般都是“乘”和“点乘”弄错了,可是我下面的程序是涉及加法的,而且维数是直接把要相加的第一个矩阵的维数赋值给第二个矩阵,不知道为什么还会出错,请高手指点!- T" J: J" G# U, E6 H+ z

    # H0 I) w: q! C4 fshiyan.m的程序体为:
    , ^: u0 c8 z! h& h. d+ y7 T" i" N( J% I- s# \
    [I,M]=imread('123.tif');7 G! c# J" E, _; y" I+ r8 j  ~
    [m,n]=size(imread('123.tif'));& A5 ], t8 }! s# |* |
    J=imnoise(I,'gaussian',0,0.02);
    ( l7 j; v/ Z3 N7 xsubplot(1,3,1),imshow(I,M),title('original image');$ N* y6 A6 m& o: _  J( b( Z% Z/ V
    subplot(1,3,2),imshow(J,M),title('managed image');
    % [8 `. c" \# [6 z! ^! S/ nK=ones(m,n);9 I  b5 D* o0 w
    for i=1:1:100& t2 q8 ^( I# x
        J=imnoise(I,'gaussian',0,0.02);6 Z% ~5 Q" t) _2 R* h/ r  B! Z
        J1=im2double(J);
    " a7 L5 ^" F& o: j    K=K+J1;      %第10行: q6 C4 d9 Y, d/ y2 }
    end
    : O0 k3 M# i: d7 Q' f( k( O) UK=K/100;       %求图像的平均  L1 f5 G4 t. i8 N9 K6 T9 v
    subplot(1,3,3),imshow(K),title('result image');+ {: u) i+ m9 Q+ }+ [( l; j/ B! e
    - c$ V3 i, y8 Y- R" ]8 j
      L8 s7 T/ G/ w- [. _
    运行的时候出现这个错误:- E5 z+ d' w% b# f/ ?3 N
    * q7 m9 M- x0 L
    ??? Error using ==> plus  Z+ D6 R  I" M3 ^
    Matrix dimensions must agree.4 w5 F# s8 X1 I% g3 }
    Error in ==> shiyan at 10
    + ~) k/ p* ]* U' Z$ v    K=K+J1;
    + w2 \1 h0 y/ ]8 i5 u
    . |: J0 S" @7 J5 J9 }2 E

    该用户从未签到

    4#
    发表于 2020-5-27 17:12 | 只看该作者
    来看看,学习学习
  • TA的每日心情
    难过
    2019-11-20 15:02
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
     楼主| 发表于 2020-5-27 16:27 | 只看该作者
    NingW 发表于 2020-5-27 16:26
    ( J" h5 t7 [+ ~( o4 Z! J7 h! K7 ssize(K)4 _  c/ r1 G1 F% q

      n/ L- F( f0 Y" _' Vsize(J1)

    4 W4 q0 b# L7 W, G# U, U/ ^2 J& O2 O) t多谢,明白了。原来它们两个的维数真的是不同的。, h1 ]& D  O$ V) T
    ! i+ B) j& K4 f; f8 I7 U7 K: y/ i
    将程序改为如下形式就对了:2 x& _4 Z" @$ D9 o3 p4 F7 ~+ T
    %导入图像的同时将图像分为行和列元素
    * f. Y9 c1 a4 @( h- u[I,M]=imread('123.tif');
    + R* ^5 z, y# A4 J+ ?. M%对图像进行加噪声7 |0 E# x, Y. X0 j. |
    J=imnoise(I,'gaussian',0,0.02);8 X, N4 ~& i) U+ G
    %显示图像
    2 w4 F% P/ ]+ Xsubplot(1,3,1),imshow(I,M),title('original image');- c  m9 C0 s# z% p$ m
    subplot(1,3,2),imshow(J,M),title('managed image');5 g4 @% y5 O) X& |' ^
    %创建与原图像一样维数的全0矩阵8 N: Y8 ~5 ~+ n3 f
    J1=im2double(J);1 m% L. ?& a/ a/ P  C- i2 v
    K=ones(size(J1));
    1 w# W# t* x0 q: U%循环100对图像加噪声然后累加
    & W4 Q7 r1 U% pfor i=1:1:1004 H) q, k- }" Y0 `5 j1 X. X
        J=imnoise(I,'gaussian',0,0.02);
    . P9 J+ Q. x" ?# y* w# H  E" M    J1=im2double(J);+ ]- y* q! K, t( V' R% `0 l9 @# S, y
        K=K+J1;+ j6 j" N4 T: ^" u' k, \8 [
    end
    - ]5 w2 z: E# Z; L% a; g%求图像的平均! L5 A4 J5 l7 U
    K=K/100; ! Q% Q7 X/ N9 F3 _4 X8 v
    %显示处理过的图像. J* G0 s: I9 o9 [* X& e+ s
    subplot(1,3,3),imshow(K),title('result image');9 e  C9 ?0 o1 D7 r# L
    - ]  f  M5 O: j9 ?) S0 t
    再次感谢
    ( y" N: U) e# E% o3 m1 D, ]

    该用户从未签到

    2#
    发表于 2020-5-27 16:26 | 只看该作者

    / Y6 \# \# Z2 q2 `* Qsize(K)+ i% g6 a; a7 K2 K

    9 N5 J" P  ^- a/ x" G6 ~size(J1)
    9 B+ Y9 a% X: e  `* P6 [2 l
    8 n' [! U0 l0 D& i8 M! ~看看显示什么

    点评

    多谢,明白了。原来它们两个的维数真的是不同的。 将程序改为如下形式就对了: %导入图像的同时将图像分为行和列元素 =imread('123.tif'); %对图像进行加噪声 J=imnoise(I,'gaussian',0,0.02); %显示图像 s  详情 回复 发表于 2020-5-27 16:27
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 12:27 , Processed in 0.171875 second(s), 25 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表