登录论坛

查看完整版本 : [MATLAB基础] matlab菜鸟请教矩阵乘法 神奇的错误


kobe-feixia
2009-04-15, 14:57
有3个7728×8的矩阵r,g,b我想把每个r的前5列×4,g的前5列×2,b的前5列×1之和赋给w1,w2,w3,w4,w5该怎么做呢?以下是我编的程序,为什么结果不对啊?
w1=r(:,1)*4+g(:,1)*2+b(:,1);
w2=r(:,2)*4+g(:,2)*2+b(:,2);
w3=r(:,3)*4+g(:,3)*2+b(:,3);
w4=r(:,4)*4+g(:,4)*2+b(:,4);
w5=r(:,5)*4+g(:,5)*2+b(:,5);
我查了r(1,1)是1,但是我写一条语句w1=r(1,1)*2再看w1的值却发现w1是98了

zt_zt
2009-04-16, 01:59
按你的式子出来w1-5都是7728×1的矩阵
w1=r(:,1)*4+g(:,1)*2+b(:,1)

w1=r第一列×4+g第一列×2+b第一列×1
你不上程序怎么知道你错哪了

silas_xue
2009-04-16, 03:59
lz 根据你的描述 你应当是针对一副图像进行的处理(r,g,b)
你的三个矩阵是否是单独保存的 还是直接从图像矩阵读入 如果是后者 你的这种读入方法是读不到r,g,b分量的 应当使用3D数组
另外 请你考虑你的数组的数据类型 导致结果可能不同

Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。
个人观点 仅供参考 多多交流 相互学习