use*_*172 3 arrays matlab multidimensional-array
我需要重置3维矩阵的"下三角".这意味着,如果原始矩阵是:
C(:,:,1) = [1 2 3 ; 2 4 6 ; 3 6 9]
C(:,:,2) = [2 4 6 ; 4 8 12 ; 6 12 18]
C(:,:,3) = [3 6 9 ; 6 12 18 ; 9 18 27]
Run Code Online (Sandbox Code Playgroud)
然后得到的矩阵应该是:
C(:,:,1) = [1 2 3 ; 2 4 6 ; 3 6 9]
C(:,:,2) = [0 0 0 ; 4 8 12 ; 6 12 18]
C(:,:,3) = [0 0 0 ; 0 0 0 ; 9 18 27]
Run Code Online (Sandbox Code Playgroud)
知道如何做这样的事情吗?(我原来的3 dim矩阵很大)
谢谢!
内置的triu不能处理这个3D阵列,但你可以在一个简单的循环中完成.
for k = 2:size(C, 3)
C(1:k-1,:,k) = 0;
end
Run Code Online (Sandbox Code Playgroud)