2014-09-16 1 views
-2

난은 1 차원 행렬을 고려해 < 1 * 50 번>나눈다 행렬

이제로 나눌 : < 1 * 25 번> < 1 * 25 번>

어떻게 할 수있는 matlab에? 도와주세요.

+0

행렬을 2 개의 작은 행렬로 분할하고 싶습니까? 예인 경우 질문 제목 편집을 고려하십시오. 이 문맥에서 '나누기'라는 단어는 모호합니다. – Hoki

+1

1 개의 변수를 2 개의 변수로 나누는 것의 이점은 무엇입니까? 너는 무엇을 할 계획 이니? 어쩌면 당신이 원하는 것은 2x25 매트릭스를 만드는 것입니다. 그렇다면 :''reshape()''를보십시오. 그래서 매트릭스의 각 행은 여전히 ​​쉽게 고칠 수 있습니다. – Nras

+0

아니요 @ 호키, 그건 단지 예일뿐입니다. 나는 매트릭스를 n으로 더 작게 나눌 수 있기를 바랍니다. – yudha25

답변

1

은 가지고

A=ones(1,50) 
다음과 같이

그런 다음 분할을 수행 할 수 있습니다 부문보다 일반적으로

A1 = A(1:25) 
A2 = A(26:end) 

또는보다 일반적으로

A1 = A(1:floor(end/2) 
A2 = A(floor(end/2)+1:end) 

또는, n 배열

for i=1:n 
    A{i}=A(floor((end/n)*(i-1)+1):ceil((end/n)*i)) 
end 

또는 그 라인을 따라 무엇인가.

또한 Split array into pieces in MATLAB과 같은 작업을 수행 한 다음 결과를 셀 배열로 변환 할 수 있습니다.

+0

감사합니다 @ sanchises,하지만 그 루프를 원한다면, 예를 들어 X가 들어있는 구조체 X가 필요합니다 <1*25 double><1*25 double>. 도울 수 있니? – yudha25

+0

어쩌면 이미 알고 있을지 모르지만 실제로는 'A (1 : floor (end/2))'와 'A (ceil (end/2) : end)'를 할 수 있습니다. =) –

+0

@RobertP. ... 당연히, 나는 그것을 바로 편집 할 것입니다. 내 바보 잊어 버려. 게다가, floor와 ceil의 차이는 배열의 크기가 홀수 일 때만 유효합니다. 그렇지 않으면'end/2thth' 요소가 두 번 끝납니다 – Sanchises