2010-04-28 3 views
19

Possible Duplicate:
How do you concatenate the rows of a matrix into a vector in MATLAB?하나 개의 행 벡터

안녕에 행렬을 변환하는 가장 쉬운 방법,

사람이 모든 행을 넣어 M X의 N 매트릭스에서 한 행 행렬 (벡터)를 만들 수있는 가장 좋은 방법이 무엇인지 알고 있나요, 1 M까지, 새로운 행렬의 첫 번째 행으로 원래의 행렬은 다음 방법 :

A = [row1; row2; ...; rowM] 
B = [row1, row2, ..., rowM] 

예 :

A = [1 1 0 0; 0 1 0 1] 
B = [1 1 0 0 0 1 0 1] 

A에서 매트릭스 B를 생성 할 수있는 간단한 메소드 또는 기본 제공 함수가 있습니까?

+1

http://stackoverflow.com/questions/2724020/matlab-matrix-concatenating –

답변

28

시도해보십시오. B = A (:) 또는 reshape 기능을 사용해보십시오.

http://www.mathworks.com/access/helpdesk/help/techdoc/ref/reshape.html

+2

'B = A의 정확한 중복 (:) ;이 경우에는 모든 열을 하나의 열 벡터에 넣을 것이므로 '작동하지 않습니다. – gnovice

+0

간단하게 행렬을 벡터로 바꿀 수 있습니다 ('올바르게 기억한다면') –

+2

복잡한 구성 요소의 부호를 뒤집을 때 복소수가있을 경우'''를 사용하지 마십시오. B = permute ([2 1], A (:)) – KitsuneYMG

23

당신은 기능 RESHAPE를 사용할 수 있습니다

B = reshape(A.',1,[]); 
+5

'연산자는 여기에주의하십시오. 데이터가 복잡한 것처럼 공액 전치를 부여합니다. 더 나은 사용하는 것입니다. ' 이 작업에서 –

+0

@ 우드 칩스 : 좋은 지적. 업데이트 됨. – gnovice

+2

나는 ** **이 질문에 대한 정확한 답변이라고 생각합니다! –

관련 문제