Error using element-wise multiplication

1 次查看(过去 30 天)
This could be a simple thing and I'm just overlooking it. A little context, I am swapping out the first row with the last row in a non-square matrix, and then multiplying the new matrix with the original. I'm struggling to find a way to multiply the two matrices. I've tried with square matrices and it works perfectly so I'm at a bit of a loss for some reason.
A=[7 3 10 10 -2 3
9 -8 10 0 9 -10
-8 -5 -7 6 6 7
9 1 10 -8 10 9];
A([1 end],:) = A(end 1],:); % To swap the first and the last rows
B = A([end 1],:) .* A % Multiply the new swapped matrix with the original
Error using .*
Matrix dimensions must agree.

采纳的回答

James Tursa
James Tursa 2017-6-9
编辑:James Tursa 2017-6-9
Remember, the syntax A([end 1],:) is only 2 rows, not the entire matrix. That is why you are getting the error. To do what you want to do, simply save a copy of the original.
Acopy = A;
A([1 end],:) = A([end 1],:); % To swap the first and the last rows
B = Acopy .* A; % Multiply the new swapped matrix with the original
  1 个评论
James Mitchell
James Mitchell 2017-6-9
Awesome! Thank you, almost as soon as I posted the question I realized that I was creating a matrix of only two rows.. Although I still couldn't think of saving the original under a different variable. Thanks again!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by