how to fill 3D array with alternate data from another 3D array

1 vue (au cours des 30 derniers jours)
Hugo le 24 Fév 2022
Hi,
I have a 3D array called data 1, with dimensions (51,1000,50)
I would like to fill another 3D array, called data, with dimensions (27,1000,50). I have written the following code:
data(1:3,:,:)=data1(1:3,:,:)
data(4:6,:,:)=data1(7:9,:,:)
data(7:9,:,:)=data1(13:15,:,:)
data(10:12,:,:)=data1(19:21,:,:)
data(13:15,:,:)=data1(25:27,:,:)
data(16:18,:,:)=data1(31:33,:,:)
data(19:21,:,:)=data1(37:39,:,:)
data(22:24,:,:)=data1(43:45,:,:)
data(25:27,:,:)=data1(49:51,:,:)
The code works ok, but I wonder if there is a more efficient way to code this.
Best regards
0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

Réponse acceptée

Benjamin Thompson le 24 Fév 2022
This is a partial example but you can use an index vector to designate all the rows you want to copy from data1:
Icopy = [1:3, 7:9];
data(1:6,:,:)=data1(Icopy,:,:)
1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Benjamin Thompson le 24 Fév 2022
Extending this example you can collapse your code into one line which will probably be a bit faster also. Just one copy into data.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Debugging and Analysis dans Help Center et File Exchange

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by