2013-03-21 1 views
0

행렬로 나열한 이미지가 있습니다. 해당 이미지의 조 변경을 가져 와서 해당 이미지를 화면에 표시하려고합니다.MATLAB의 전치 도구없이 행렬을 조바꿈하는 방법

저는 이것을 "어려운"방법, 즉 MATLAB의 전치 함수를 사용하지 않고 어떻게하는지 알고 싶습니다.

+8

왜 Matlab을 사용합니까? C 이상을 사용하십시오. Matlab은 쉽게 할 수 있도록 설계되었습니다 ... – bla

+6

'transpose (x)'를 피하려고합니까? 'x '는 어때? 'permute (x, [2 1])'는 어떨까요? "쉬운 방법"을 피하는 것은 거의 이해가되지 않습니다 ... 실제로 답변을 제공하기 위해서는 더 많은 배경이 필요할 것입니다. – tmpearce

+0

이것은 매트릭스 메소드 클래스에 대한 할당의 일부입니다 ... 이미지 매트릭스의 전치를 찾아서 표시해야합니다. 저는 MATLAB newb입니다. – user2192778

답변

1

클래스와 마찬가지로 정확한 답변을 드릴 수는 없지만 올바른 방향으로 안내하겠습니다. 필자는 내장 함수를 사용하는 대신 정보를 수동으로 바꾸는 방법을 찾고 있다고 가정합니다.

Matlab은 값을 벡터와 "크기"형태로 매트릭스에 저장합니다. 예를 들어, 2x3 매트릭스는 벡터에 6 개의 값을 저장하고 [2,3] (내부적으로) 그것은 2x3이고 6x1이 아닙니다.

의 2x3 행렬

,이 벡터의 값의 순서이다

1 3 5 
2 4 6 

는 (2,2)의 값을 참조하는 경우에는 (2,2)으로서 참조 할 수는 또는 A (4)로 표시됩니다. (1,3)의 값은 A (5)로 참조 할 수 있습니다.

이와 같이, 변환 된 순서로 값을 참조하는 벡터를 구성 할 수있는 경우 새 값을 적절한 순서로 할당하고 적절한 크기의 행렬에 저장할 수 있습니다.

1 2 
3 4 
5 6 

이가 (1,3,5,2,4,6)로 표현 될 것이다 크기 (3,2)와 : 점을하려면, 위의 행렬의 전치을 고려하십시오. 벡터 (1,3,5,2,4,6)를 구성 할 수 있다면 해당 벡터를 사용하여 값을 적절하게 할당 할 수 있습니다.

0

여기 용액쪽으로 힌트 : 전치 전치 배열 B (B=A')으로부터 소자로 B(2,1) 정상 A 배열로부터 요소 A(1,2) 변환하고 그 반대. 따라서 모든 행과 열을 반복하고 요소별로 변환을 적용 할 수 있습니다.

0

flipudfliplr을 사용할 수 있습니까?
이 경우 전위를 뒤집기 순서로 나타낼 수 있습니다 (정확한 순서를 알아 내기 위해 그대로 두겠습니다).

+0

이것이 어떻게 작동하는지 알 수 없습니다.단일 작업은 자체와 행 사이의 열을 교환하지만 열과 행을 교환하지 않습니다. –

5
function [B] = trans(A) 
[r c] = size(A); 
B = zeros(c,r); 
for i = 1:r 
    for j = 1:c 
     B(j,i) = A(i,j) 
    end 
end 
end 
-1

이에 대한 flipud/fliplr에 rot90 사용할 수 있습니다.

+2

자세한 설명이 필요할 수 있습니다. – guness

관련 문제