Fast way to replicate array
3 ビュー (過去 30 日間)
古いコメントを表示
I have a matrix W of size ExF, and I have a matrix D of size NxFxNxE where D(n,:,n,:) = W'
Is there a fast way to replicate W to form D without having to loop through N
Thanks!
0 件のコメント
採用された回答
Mohammad Abouali
2015 年 4 月 28 日
編集済み: Mohammad Abouali
2015 年 4 月 28 日
w=[1 2; ...
3 4; ...
5 6];
N=5;
E=size(w,1);
F=size(w,2);
D=repmat(reshape(w',1,F,1,E),N,1,N,1);
0 件のコメント
その他の回答 (2 件)
Andrei Bobrov
2015 年 4 月 28 日
編集済み: Andrei Bobrov
2015 年 4 月 28 日
i1 = bsxfun(@plus,[0;N]+1,(0:N-1)*(2*N+1));
i2 = bsxfun(@plus,i1,reshape((0:F)*i1(end),1,1,[]));
D = zeros(N,F,N,E);
D(i2) = permute(repmat(W,[1,1,N]),[2,3,1]);
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!