Error using element-wise multiplication

6 visualizaciones (últimos 30 días)
James Mitchell
James Mitchell el 9 de Jun. de 2017
Comentada: James Mitchell el 9 de Jun. de 2017
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.

Respuesta aceptada

James Tursa
James Tursa el 9 de Jun. de 2017
Editada: James Tursa el 9 de Jun. de 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 comentario
James Mitchell
James Mitchell el 9 de Jun. de 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!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by