How to multiply a variable for matrix?
이전 댓글 표시
Hello I'm trying to do this kind of operation:
A = 20:100:20000
B = [2 3 0 0 0 0; 3 4 -5 0 0 0; 0 7 8 -3 0 0; 0 0 3 2 -3 0; 0 0 0 2 1 1; 0 0 0 0 6 4]
C = A.*B
and it gives me the following error:
??? Error using ==> times Matrix dimensions must agree.
How can I fix it?
답변 (2개)
Shane Overington
2016년 1월 15일
0 개 추천
Hi Gabriel,
The issue here (as the returned error is indicating) is that the matrices you are trying to multiply are not the same size.
Matrix A is 1 by 200 and Matrix B is 6 by 6.
Are these the matrices you want to multiply, or should they be structured differently?
If you want to do an element-wise multiplication (i.e. C = A.*B) then A and B both need to be 1 by 200 matrices (or both 6 by 6), so that the request can be evaluated as a multiplication of each of the locations in the respective matrices.
For example:
A = [2 3 4 5 6 7];
B = [3 5 6 7 8 9];
C = A.*B;
Result is:
C = [6 15 24 35 48 63]
Regards, Shane
댓글 수: 2
Gabriel Oliviero
2016년 1월 15일
What size do you expect the output to be, when you multiply a 1x200 matrix with a 6x6 matrix? Which of these do you want?:
Walter Roberson
2016년 1월 15일
If you want the entire matrix B to be multiplied by each element of A in turn, then
C = bsxfun(@times, reshape(A,1,1,[]), B);
This would produce a 6 x 6 x 200 array
댓글 수: 4
Gabriel Oliviero
2016년 1월 15일
Walter Roberson
2016년 1월 15일
What are you hoping your output graph would look like?
C = permute( bsxfun(@times, reshape(A,1,1,[]), B), [3 1 2]);
The result of that would be 200 x 6 x 6
For any given value of A, how many output lines do you want, and do you want them across the rows of the 6 x 6 or do you want them down the columns of the 6 x 6?
Gabriel Oliviero
2016년 1월 15일
Walter Roberson
2016년 1월 15일
That does not tell me anything about what you want the graph to look like. Are you graphing surfaces? 3D lines? 36 2D lines across the width? 6 2D lines for each A value? 6 3D lines for each A value? A 6 x 6 contour plot for each A value?
카테고리
도움말 센터 및 File Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!