Matrix calculation and powers

4 visualizaciones (últimos 30 días)
MattH
MattH el 28 de Abr. de 2018
Comentada: Ameer Hamza el 28 de Abr. de 2018
Hello, Is there a way to elevate each element of a 2D matrix to several powers at once (without using a loop) ? The result should be a 3D matrix where each "layer" corresponds to the initial data matrix elevated to a certain power.
rawValues=[7 3 7 9 4 2 5 5;5 2 3 10 2 2 4 3;2 6 7 7 8 10 6 5];
nRow=size(rawValues,1);
powerMatrix = repmat(1:5,nRow,1);
powerVector=1:5;
d3Matrix= zeros(nRow,8,5);
d3Matrix(:,:,1)=rawValues.^powerVector(:,1);
I tried different ways but I always got a dimension error message. I am not sure whether the powers should be in a matrix or a vector (nothing has worked so far...). I am sure it is just a stupid matter of syntax...
Any idea ?
Many thanks !

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 28 de Abr. de 2018
You can do it in one line, just make the dimensions appropriate.
rawValues=[7 3 7 9 4 2 5 5;5 2 3 10 2 2 4 3;2 6 7 7 8 10 6 5];
powerMatrix = reshape(1:5, 1, 1, []);
Result = rawValues.^powerMatrix;
  2 comentarios
MattH
MattH el 28 de Abr. de 2018
Great, thanks you ! I knew it was possible !
Ameer Hamza
Ameer Hamza el 28 de Abr. de 2018
You are welcome.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by