what is the mistake,
이전 댓글 표시
Given two real square matrix of order n. Get a new matrix of the elements of each column of the first matrix times elements of the corresponding rows of the second matrix. i coded using matlab but unfortunately it applys only for (3x3)matrix.what should i do so that it may apply for every kind of matrix, for example(4x4),(5x5) and more.
codes
clc
clear
a=[1 2 3;4 5 6;7 8 9];
b=[1 2 3;4 5 6;7 8 9];
for i=1:length(a)
for j=1:length(b)
c(i,j)=a(i,j)*b(j,i)
end
end
disp(a);
disp(b);
disp(c);
댓글 수: 1
From what you wrote I can't deduce how you want to get the new matrix from the two given matrices.
Your code from above just calculates C as
C=A.*B.'
I guess this is not what you have in mind.
Best wishes
Torsten.
채택된 답변
추가 답변 (2개)
Roger Stafford
2016년 5월 23일
If A and B are your two square matrices
C = A.*(B.');
Guillaume
2016년 5월 23일
0 개 추천
"unfortunately it applys only for (3x3)." The code you've posted applies to any size of matrix. There's is nothing restricting it to 3x3 matrices, so it's not clear why you're asking the question.
Note that you don't need a loop to perform the operation you're carrying out. Have a look at memberwise multiplication .* and transpose .'.
카테고리
도움말 센터 및 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!