To mirror (i.e, to copy) the upper matrix to the lower half in matrices arranged in 3D
2 次查看(过去 30 天)
显示 更早的评论
These two lines mirror (i.e, copy) the upper matrix to the lower half in matrix M, and replace the diagonal elements of the same M with NaN values
M2=triu(M)+triu(M,1)';
%2. To replace the diagonal elements of A with NaN values
M2(eye(size(M2))==1) = nan;
How can I implement them in a 3D array? (e.g., M_3D=374x374x5). The code below does not work.
ns = size(M_3D,3);
M_3D_ = M_3D;
for s = 1:ns
thisM = M_3D(:,:,s);
thisM = triu(M_3D(:,:,s))+triu(M_3D,1)';
M_3D_(:,:,s) = thisM;
M3D_(eye(size(M_3D_(:,:,s)))==1) = nan;
end
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Operating on Diagonal Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!