2013-11-28 4 views
0

나는 쌍의 배열을 필요로하는 matlab 함수를 가지고있다. meshgrid를 사용하여 이러한 배열을 생성해도 문제가 없습니다. 문제는 내가 한 쌍의 배열로 함수를 호출 할 때 matlab 인터프리터는 배열의 배열 대신에 두 개의 요소로 이루어진 배열로 간주한다.한 쌍의 Matlab 배열

내가 예와 함께 설명 할 것이다 :

지금
[p,q] = meshgrid(vec1, vec2); 
pairs = [p(:) q(:)]; 

''쌍 ''커플의 배열이지만, vec1 및 VEC2 만 한 요소가있는 경우 ''쌍 ''단지 배열입니다 두 요소.

한 쌍의 배열을 생성하는 데 도움을 줄 수 있습니까? 이 같은

무엇인가 : 당신은 셀 어레이를 찾고 있습니다

+0

다중 요소의 경우,'pairs'는 배열의 배열이 아닙니다. 그것은 하나의 요소의 경우와 마찬가지로 2 열 배열입니다. 행 수만 변경됩니다. 그래서 나는 당신의 요점을 보지 못합니다. 두 경우 모두, 쌍 (m, n)은 m 번째 쌍의 n 번째 요소에 액세스합니다. –

답변

0

aPair =[[a, b]]; 
aPair(1) 
ans = 
    [a,b] 

은 대단히 감사합니다.

대신 셀 어레이 완패를가는, 당신 액세스 쌍 # 1 그러나

aPair{1} 

으로 그것을

pairs = arrayfun(@(x,y)[x,y],p(:),q(:),'uni',false); 

또는

pairArray = [p(:),q(:)]; 
pairs = mat2cell(pairArray ,ones(size(pairArray,1),1),2); 

을 구성 할 수 있습니다, 왜에 액세스 할 행은 pairArray입니까?

aPair = pairArray(n,:) 
+0

Jonas에게 감사드립니다. "aPair = pairArray (n, :)"가 훨씬 좋습니다. 그러나 나는 여전히 고독한 한 쌍의 문제가있다. – user2483388