For Loop in 3D Array
6 ビュー (過去 30 日間)
古いコメントを表示
For 2D arrays, the operation that I want to execute is:
a = rand(3,3);
for i = 1:numel(a)
for j = 1:numel(a)
out(i,j) = (a(i) - a(j)) / (a(i) + a(j));
end
end
Which will turn the out into a skew-symmetric matrix. Now I want to perform the same operation instead the matrix is in 3D, how can I do that? The speed is important since my original matrix is (100,100,726). Thanks!
0 件のコメント
採用された回答
Dyuman Joshi
2022 年 5 月 31 日
編集済み: Dyuman Joshi
2022 年 5 月 31 日
a = rand(3,3,4);
for k=1:size(a,3)
y=a(:,:,k);
for i=1:size(y,1)
for j=1:size(y,2)
out(i,j,k)=(y(i) - y(j))/(y(i) + y(j));
end
end
end
out
2 件のコメント
Dyuman Joshi
2022 年 5 月 31 日
It will be skew-symmetric matrix. I have made an edit, take a look at it again.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!