3D 매트릭스 (아래 시그마)의 대각선을 다른 3D 매트릭스 (아래 시그마 2)로 추출하고 싶습니다.
Sigma = repmat(magic(4),1,1,3);
Sigma2 = nan(1,4,3);
for i=1:3
Sigma2(1,:,i) = diag(Sigma(:,:,i));
end
이 작업을 수행하는 더 효율적인 방법이 있습니까?
할 수 있습니다. 당신이 바꿀 경우 Sigma
3 차원 행렬의 대각선을 선택, 매트릭스 지금 행렬에서 행을 선택하는 것입니다.
Sigma3=reshape(Sigma,[],size(Sigma,3));
Selector=diag(true(size(Sigma,1),1));
Sigma2=Sigma3(Selector(:),:);
%Sigma2=permute(Sigma2,[3,1,2]) %optional last step to get a result with the same dimensions.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다