Vectorise matrix element multiplication

2 visualizaciones (últimos 30 días)
Divij Gupta
Divij Gupta el 22 de Jun. de 2021
Respondida: KSSV el 22 de Jun. de 2021
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;

Respuestas (1)

KSSV
KSSV el 22 de Jun. de 2021
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)))

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by