Matrix calculation and powers

조회 수: 11 (최근 30일)
MattH
MattH 2018년 4월 28일
댓글: Ameer Hamza 2018년 4월 28일
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 !
  댓글 수: 1
MattH
MattH 2018년 4월 28일
forget the zeros()

댓글을 달려면 로그인하십시오.

채택된 답변

Ameer Hamza
Ameer Hamza 2018년 4월 28일
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
MattH
MattH 2018년 4월 28일
Great, thanks you ! I knew it was possible !
Ameer Hamza
Ameer Hamza 2018년 4월 28일
You are welcome.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by