Vectorise matrix element multiplication
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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;
0 comentarios
Respuestas (1)
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)))
0 comentarios
Ver también
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!