Vectorise matrix element multiplication

조회 수: 1 (최근 30일)
Divij Gupta
Divij Gupta 2021년 6월 22일
답변: KSSV 2021년 6월 22일
I want to find a way to vectorise the following operation:
  • Take q random elements from the cell Z (which is populated by matrices)
  • Multiply them together into a matrix
Here is how I am doing it right now:
combo_matrix = nchoosek(1:N,q);
H = zeros(2^(N/2));
for i = 1:combo
rand_index = randi(size(combo_matrix,1));
h = eye(2^(N/2));
for c = 1:q
h = h*Z{combo_matrix(rand_index,c)};
end
H = H + h;
combo_matrix(rand_index,:) = [];
end
H = complex(0,1)^(q/2) * H;

답변 (1개)

KSSV
KSSV 2021년 6월 22일
If Z is a matrix. You can replace the loop:
for c = 1:q
h = h*Z{combo_matrix(rand_index,c)};
end
with
c = 1:q ;
h = prod(Z(combo_matrix(rand_index,c)))

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by