找回密码
 注册
关于网站域名变更的通知
查看: 477|回复: 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 通过“.”来区分矩阵运算和元素运算。
    5 i6 L+ `3 k& p; n( a$ a' w0 z$ i" w* u+ R' F3 A  R
    我看了一些论坛讨论的这个错误,一般都是“乘”和“点乘”弄错了,可是我下面的程序是涉及加法的,而且维数是直接把要相加的第一个矩阵的维数赋值给第二个矩阵,不知道为什么还会出错,请高手指点!# T8 ^. l& _# w4 }. }
    6 G; o% C3 L% I, |3 b7 f
    shiyan.m的程序体为:
    6 i, P8 c4 @; Z/ H7 O  Q' O, @7 y% M5 v
    [I,M]=imread('123.tif');
      g) q+ w4 ]' [$ z) ?[m,n]=size(imread('123.tif'));7 s$ N  r; |/ e8 L
    J=imnoise(I,'gaussian',0,0.02);: U7 U- r! u! c  D; @
    subplot(1,3,1),imshow(I,M),title('original image');
    3 u& {9 z! a$ k% N5 N5 lsubplot(1,3,2),imshow(J,M),title('managed image');
    / d& N9 E: g' V& CK=ones(m,n);4 c5 s, F, |  K- r5 \% S0 R
    for i=1:1:100
    ( f5 ?8 h9 p, ^' I) B. u: M    J=imnoise(I,'gaussian',0,0.02);
    3 D+ v$ U9 K- v, [* q( v8 S    J1=im2double(J);3 `) A5 U; j8 F' x  s0 W
        K=K+J1;      %第10行$ h8 q; E9 f" j1 f" E
    end' v- w) f8 z: \
    K=K/100;       %求图像的平均
    # B# l0 R  K3 f" {3 ~8 ~( xsubplot(1,3,3),imshow(K),title('result image');
    $ ~; h  c9 }7 p% p/ f
    - W8 L) C7 w& M. x( q+ k" M
    , O# Y5 i1 D) p  q2 l5 {运行的时候出现这个错误:+ @) i2 m" h9 U+ O/ z* q
      E# g  e% {3 j
    ??? Error using ==> plus) B  Y/ o+ R: |$ j
    Matrix dimensions must agree.4 P4 W5 |, A2 N2 h
    Error in ==> shiyan at 10
      S" B& k. t- g, G5 ]; B: L( z    K=K+J1;3 [  X, G1 ~% }2 Y
    . u1 _1 F4 g' c! z% J0 j

    该用户从未签到

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

    ! l0 H  R  \1 ^" W5 o( rsize(K)
    ; }) B- L) R% \! [) O2 J( O& d& O6 l7 N
    size(J1)
    / y: r; n1 ]3 G6 P+ n' i
    + e9 H6 h& g# @* Q4 a$ Q) k0 k- U! h7 P看看显示什么

    点评

    多谢,明白了。原来它们两个的维数真的是不同的。 将程序改为如下形式就对了: %导入图像的同时将图像分为行和列元素 =imread('123.tif'); %对图像进行加噪声 J=imnoise(I,'gaussian',0,0.02); %显示图像 s  详情 回复 发表于 2020-5-27 16:27
  • TA的每日心情
    难过
    2019-11-20 15:02
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
     楼主| 发表于 2020-5-27 16:27 | 只看该作者
    NingW 发表于 2020-5-27 16:265 @. a. j8 K) r' g
    size(K)
      L8 L5 V( G4 z8 F4 j7 _( B. `7 S' B9 Q; N0 S
    size(J1)
    . K' H9 |& B- G- N' C
    多谢,明白了。原来它们两个的维数真的是不同的。
    2 v0 @5 O. h) [. X4 l' [6 u9 D$ Y0 H' i1 V4 m) @
    将程序改为如下形式就对了:: B6 I( Q5 C! z9 N6 w; S0 d
    %导入图像的同时将图像分为行和列元素
    " Z/ ~- O! K( v  _* H7 L[I,M]=imread('123.tif');
    9 `3 _. u/ B6 K6 F; r2 `& M2 U2 W%对图像进行加噪声
    & Y: G4 }0 F3 H  ?0 B. ^7 ]6 D& B" c4 G. ?J=imnoise(I,'gaussian',0,0.02);
    1 F4 o0 b7 X, W3 I8 w%显示图像' g5 d9 t; _7 M, q
    subplot(1,3,1),imshow(I,M),title('original image');4 y3 h0 X. S% L1 I5 ~
    subplot(1,3,2),imshow(J,M),title('managed image');
    5 x) n* _% M+ q3 K% l* I%创建与原图像一样维数的全0矩阵
    7 h5 n9 O0 s% I) E$ oJ1=im2double(J);/ C: P0 u$ a& l5 s& p
    K=ones(size(J1));$ d$ R4 k$ X- B
    %循环100对图像加噪声然后累加- B) H: `* ^* h% w
    for i=1:1:1007 ]$ I8 i9 G9 J; A) x
        J=imnoise(I,'gaussian',0,0.02);  H( u9 r: n/ V5 J' O3 {  K
        J1=im2double(J);
      q7 _4 ~0 b' P! q* Z    K=K+J1;
    ) g: A" w; u; Jend# T; Y9 R/ @. b6 }
    %求图像的平均, \) z1 T  ^; n# f3 u
    K=K/100;
    9 f* @( j) V# E% X' B& |' f%显示处理过的图像
    3 d) o: f- j; D2 n9 Z. m! C3 n9 w0 S! Msubplot(1,3,3),imshow(K),title('result image');1 v+ b. g- \4 I3 D$ E& {' ^/ {0 ^

    . J/ D  g. z% u9 K1 p* b再次感谢
    , J) F  `, O2 b9 R" o

    该用户从未签到

    4#
    发表于 2020-5-27 17:12 | 只看该作者
    来看看,学习学习
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 09:42 , Processed in 0.171875 second(s), 28 queries , Gzip On.

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

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

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