声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1044|回复: 5

[编程技巧] Matrix dimensions must agree 出错求助

[复制链接]
发表于 2008-4-8 21:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
这是在对一副图像进行处理的时候,遇到的问题

不明白为什么矩阵转置和矩阵都有值,但是矩阵相乘就不对了

希望高手指教

在这多谢了

>> mu=zeros(3, 3, 240,320);
>> strtemp=strcat('e:\constract\',int2str(1),'.','jpg');
>> I=imread(strtemp);
>> vec_diff=[I(1,1,1)-mu(1,1,1,1);I(1,1,2)-mu(2,1,1,1);I(1,1,3)-mu(3,1,1,1)];
>> vec_diff

vec_diff =

   93
  119
   71

>> vec_diff'

ans =

   93  119   71

>> vec_diff'*vec_diff
??? Error using ==> mtimes
Matrix dimensions must agree.

[ 本帖最后由 eight 于 2008-4-9 11:38 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-4-8 23:11 | 显示全部楼层
从错误看是矩阵维数不一样引起的。
发表于 2008-4-9 08:54 | 显示全部楼层

回复 2楼 的帖子

vec_diff =

   93
  119
   71

>> vec_diff'

ans =

   93  119   71
仅仅从这些数据来算,我运行正常
vec_diff =[93 119 71]

vec_diff =

    93   119    71

>> vec_diff*vec_diff'

ans =

       27851
发表于 2008-4-9 10:29 | 显示全部楼层

回复 楼主 的帖子

你转置完了是1×3的阵,用“1×3"乘”1×3”当然出错了啊
发表于 2008-4-9 11:38 | 显示全部楼层
看置顶区的常见错误整理贴,另外,新手的话请看置顶区的for 新手系列的帖子,还有,多看看基础书
 楼主| 发表于 2008-4-9 16:28 | 显示全部楼层
多谢各位了
后来错误找出来了,是因为图像读进matlab的时候是整型的,需要转化成double型的,然后运算就没问题了。。。

另外,我语法没什么问题,我用的是矩阵的转置乘以该矩阵,维数是相等的

[ 本帖最后由 eight 于 2008-4-9 16:35 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-4 16:03 , Processed in 0.082202 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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