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!