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!

 Réponse acceptée

As of R2016b, you can just do this
[1;2;3] .^ [1,2,3,4]
Otherwise, use bsxfun()

4 commentaires

Xin
Xin le 12 Oct 2016
Modifié(e) : Xin le 12 Oct 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 le 12 Oct 2016
Modifié(e) : Matt J le 12 Oct 2016
Upgrade!
Or, use bsxfun() as I suggested.
Nice, bsxfun does work. Thank you so much!
Then please ACCEPT the answer...

Connectez-vous pour commenter.

Plus de réponses (1)

>> bsxfun(@power,[1:4],[1:3].')
ans =
1 2 3 4
1 4 9 16
1 8 27 64
>>

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Question posée :

Xin
le 12 Oct 2016

Commenté :

dpb
le 12 Oct 2016

Community Treasure Hunt

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

Start Hunting!

Translated by