我的第一个矩阵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矩阵运算比较强大,这个不需要用循环来实现。