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!

 Akzeptierte Antwort

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

4 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Mathematics finden Sie in Hilfe-Center und File Exchange

Gefragt:

Xin
am 12 Okt. 2016

Kommentiert:

dpb
am 12 Okt. 2016

Community Treasure Hunt

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

Start Hunting!

Translated by