how to fill 3D array with alternate data from another 3D array
2 ビュー (過去 30 日間)
古いコメントを表示
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.
I thank you in advance,
Best regards
0 件のコメント
採用された回答
Benjamin Thompson
2022 年 2 月 24 日
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 件のコメント
Benjamin Thompson
2022 年 2 月 24 日
Extending this example you can collapse your code into one line which will probably be a bit faster also. Just one copy into data.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Debugging and Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!