Use only defined 4D array elements
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mantas Vaitonis
le 22 Juil 2018
Commenté : Mantas Vaitonis
le 22 Juil 2018
Hello to All, There is 4D array varcov (NxNxZxL), I need to make other 4D array with the following values:
varcov1=[varcov(1,1,:,:) varcov(2,2,:,:) varcov(3,3,:,:) ..till end(N)];
That result varcov1 would be (1xNxZxL).
0 commentaires
Réponse acceptée
Rik
le 22 Juil 2018
The code below should work for you. Since R2016b you can use the line with implicit expansion.
N=3;Z=4;L=6;
varcov=reshape(1:(N*N*Z*L),N,N,Z,L);%generate sample data
inds=bsxfun(@plus,(1:N+1:N^2)',N^2*(0:(Z*L-1)));%find the inds to the diagonal of each slice
%(1:N+1:N^2)'+N^2*(0:(Z*L-1)); with implicit expansion
varcov1=reshape(varcov(inds),1,N,Z,L);
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Portfolio Optimization and Asset Allocation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!