Exponentiation of Matrix Columns by different Powers

5 Ansichten (letzte 30 Tage)
John
John am 6 Jul. 2015
Beantwortet: James Tursa am 6 Jul. 2015
Given an MxN matrix A and a 1xN vector b, is there a concise way to raise each column of A to a corresponding power of the vector b? For example, if N = 4, the resulting matrix C would be computed as:
C = [A(:,1)^b(1) A(:,2)^b(2) A(:,3)^b(3) A(:,4)^b(4)];
However, when N becomes large, explicitly writing this formula is not feasible. Is there a way to write this without the use of a loop? Thank you for any feedback.

Akzeptierte Antwort

Brendan Hamm
Brendan Hamm am 6 Jul. 2015
repmat can be used to create a matrix bExp of the same size as A where the rows are repeated.
bExp = repmat(b,size(A,1),1); % Expand b to be the size of A (assuming width are same)
C = A.^bExp;

Weitere Antworten (1)

James Tursa
James Tursa am 6 Jul. 2015
C = bsxfun(@power,A,b);

Kategorien

Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by