matlab矩阵相乘问题,到底哪里出错了?如下图,左边错误提示,右边源代码.
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/18 01:20:28
![matlab矩阵相乘问题,到底哪里出错了?如下图,左边错误提示,右边源代码.](/uploads/image/z/10134595-19-5.jpg?t=matlab%E7%9F%A9%E9%98%B5%E7%9B%B8%E4%B9%98%E9%97%AE%E9%A2%98%2C%E5%88%B0%E5%BA%95%E5%93%AA%E9%87%8C%E5%87%BA%E9%94%99%E4%BA%86%3F%E5%A6%82%E4%B8%8B%E5%9B%BE%2C%E5%B7%A6%E8%BE%B9%E9%94%99%E8%AF%AF%E6%8F%90%E7%A4%BA%2C%E5%8F%B3%E8%BE%B9%E6%BA%90%E4%BB%A3%E7%A0%81.)
xT[SV+dLF#KM, Sap?Թ\*&F(² "L\TEQVx9YHFcDy9!IreĥD T{q<..('EdYQZ/ą`+<'+\x0p{`z`_t+C
nXIˤdJ/Üf`B6/=
GC÷fVsduuztFdرMhpgU^FJʍorf,qM'+3,ؽ uvO_^-5frZ
=! Z7>Oz78)TCMPH-żE/zŘi6Pcz*r)~jPnk]9ǯ=s%`X3<qKsG!8'ps;E'{+_̃ a `ov+}Bz00m;,}UrvyS@[1!L86Pi ."2G3\)
?ڪasd
matlab矩阵相乘问题,到底哪里出错了?如下图,左边错误提示,右边源代码.
matlab矩阵相乘问题,到底哪里出错了?如下图,左边错误提示,右边源代码.
matlab矩阵相乘问题,到底哪里出错了?如下图,左边错误提示,右边源代码.
楼上几位似乎都没有找到问题的真正症结.
出现这个错误的原因是,读入的boy.jpg是一个真彩图像,所以对应的i是一个三维数组,而矩阵乘法(*)只能对两个二维数组进行(其中一个可以是标量).
看楼主代码的意图,应该是想要显示图片中间一个方形区域的内容,而把其余部分设置为黑色.这可以通过以下两种方式来做.
1、按照真彩图像显示,此时b也应该定义为三维数组:
i=imread('boy.jpg');i=im2double(i);
b=zeros(size(i));
b(50:150,50:150,:)=1;
n=b.*i;
imshow(n)
2、如果按照二维数组来做,则需要把图像转为灰度图像:
i=imread('boy.jpg');i=rgb2gray(i);
i=im2double(i);
b=zeros(size(i,1),size(i,2));
b(50:150,50:150)=1;
n=b.*i;
imshow(n)
注意:
1、两种做法都应该使用点乘(.*)而非矩阵乘(*).
2、第二种做法对变量 b 赋值的那两句也可以使用第一种做法对应的两句,效果相同.