how to write a very concise expression for matrix power

I have a row vector, e.g. [1,2,3,4], and I want to put, say 3 different power [1;2;3] to create a matrix as follow:
[1,2,3,4]?^[1;2;3] = [1,2,3,4 ; 1,4,9,16 ; 1,8,27,64].
Anyone knows how to get it without using a loop. Many thanks!

 Respuesta aceptada

Matt J
Matt J el 12 de Oct. de 2016
As of R2016b, you can just do this
[1;2;3] .^ [1,2,3,4]
Otherwise, use bsxfun()

4 comentarios

Xin
Xin el 12 de Oct. de 2016
Editada: Xin el 12 de Oct. de 2016
Ahh, I am using 2011, didn't know it works in 2016.
Thanks for reply. Is there any other way to let it work.
Matt J
Matt J el 12 de Oct. de 2016
Editada: Matt J el 12 de Oct. de 2016
Upgrade!
Or, use bsxfun() as I suggested.
Xin
Xin el 12 de Oct. de 2016
Nice, bsxfun does work. Thank you so much!
dpb
dpb el 12 de Oct. de 2016
Then please ACCEPT the answer...

Iniciar sesión para comentar.

Más respuestas (1)

dpb
dpb el 12 de Oct. de 2016
>> bsxfun(@power,[1:4],[1:3].')
ans =
1 2 3 4
1 4 9 16
1 8 27 64
>>

Categorías

Más información sobre MATLAB en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

Xin
el 12 de Oct. de 2016

Comentada:

dpb
el 12 de Oct. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by