2014-01-29 3 views
2

우리는 a = [1 2; 3 4]; b = [5,6,7,8]; 및 z = cat (3, a, b)이다. 3 차원 행렬을 벡터화하여 결과가 c = [1 5; 2 6; 3 7; 4 8]? 나는 그것이 reshape과 관련이 있다는 것을 알고 있지만, 나는 길을 찾을 수 없다.z 방향의 3d 매트릭스 변형

고마워.

+0

을 (:, :, 1), B = Z (:, :, 2) => c = [a (:) b (:)]. 다음 답변보다 순진합니다. – Thoth

+0

처음에는'z'에서'permute'를 호출해야하기 때문에 .. – Jonas

+0

무슨 뜻입니까? 그것은 정확하지 않습니까? – Thoth

답변

3

당신이 z를 통해 이동해야하는 경우 : A = Z를 가지고, 좋은 점심 식사 후, 그렇지 않으면

c = reshape(permute(z,[2 1 3]),[],2) 

c = [reshape(a',[],1),reshape(b',[],1)]; 
+0

그 두 가지는 동일하지 않습니다 - 두 번째 만 올바른 답을 제공합니다. 아. permute now를 추가했습니다.) – Edric

+0

@ Edric : 그 동안 알아 차리고 해결했습니다. 테스트가 도움이됩니다. 어쨌든 헤드 업에 감사드립니다. – Jonas

3
reshape(permute(z,[2 1 3]), 4, 2) 
+0

첫 번째로 올바르게하기위한 +1 (가정). – Jonas

+0

@Jonas 아마도 처음에는 그리 좋지 않을 수 있습니다. – Edric