element in matrix multiplication to create a new matrix
    8 次查看(过去 30 天)
  
       显示 更早的评论
    
A and O is 3x1 matrix
B and D is 1x3 matrix
f is a 3x3 matrix
What is wrong with the code below?
i=1:3
j=1:3
T(i,j)=A(i).*B(j).*O(i).*D(j).*f(i,j)
0 个评论
采纳的回答
  Marta Salas
      
 2014-3-14
        
      编辑:Marta Salas
      
 2014-3-14
  
      Your code doesn't run because you are using .* which is element wise multiplication instead of standar matrix multiplication. You can do:
for i=1:3
    for j=1:3
        T(i,j)=A(i).*B(j).*O(i).*D(j).*f(i,j)
    end
end
or
T=A*B*O*D*f
depending on the result you are expecting.
0 个评论
更多回答(1 个)
  Benjamin Avants
      
 2014-3-14
        Your question is a little unclear, but if you want to do matrix multiplication like this:
          |d|
|a,b,c| * |e| = (ad+be+fc)
          |f|
or this
|a|             |ae,af,ag|
|b| * |e,f,g| = |be,bf,bg|
|c|             |ce,cf,cg|
then you want to use the normal * operator and not the .* operator.
The .* operator will multiply a constant by each element in the matrix or array. It will also do elementwise multiplication on arrays of the same size.
Example:
|a,b|    |e,f|   |ae,bf|
|c,d| .* |g,h| = |ag,dh|
0 个评论
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


