Error using element-wise multiplication

2 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

James Tursa
James Tursa il 9 Giu 2017
Modificato: James Tursa il 9 Giu 2017
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 Commento
James Mitchell
James Mitchell il 9 Giu 2017
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!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by