MATLAB中两个矩阵相乘的问题

我的第一个矩阵returne是一个567*544的矩阵
第二个矩阵cjl也是一个567*544的矩阵
写了一个程序:
for i=1:567;
j=1:544;
sig(i,j)=returne(i,j)*cjl(i,j);
end

为什么显示的是:
??? Error using ==> mtimes
Inner matrix dimensions must agree.

而把程序改成:
for i=1:567;
j=1:544;
sig(i,j)=returne(i,j)/cjl(i,j);
end
显示Warning: Rank deficient, rank = 0, tol = 0.0000e+000.
做乘法为什么会说维度不一样?难道MATLAB不能计算这么大的吗
为什么改成除法了,就可以计算了

你这个

j=1:544;

并没有在循环,而是直接赋给 j 一个向量了。要实现你的目的直接:

sig = returne.*cjl;

即可

追问

直接相乘,显示的仍旧是一样。。。
sig = returne.*cjl;
请问一下你的returne后面为什么有一个小黑点,而不是直接*

追答

这是MATLAB点乘运算,是矩阵中的每一个元素都进行乘。

所以

sig = returne .* cjl;

实现把returne和cjl中的对应元素相乘,最后结果存入sig。MATLAB矩阵运算比较强大,这个不需要用循环来实现。

温馨提示:答案为网友推荐,仅供参考
相似回答