2013-06-26 1 views
1

두 벡터를 요소의 모든 조합으로 구성된 행렬로 변환하는 방법은 무엇입니까?Matlab의 외장 제품입니까?

>> A=[1;2;3] 

A = 

    1 
    2 
    3 

>> B=[4;5;6] 

B = 

    4 
    5 
    6 

에 켜야 벡터

[1,4; 1, 5; 1, 6; 2, 4; 2, 5; 2, 6; 3, 4; 3, 5; 3, 6]

ANS =

1  4 
1  5 
1  6 
2  4 
2  5 
2  6 
3  4 
3  5 
3  6 
+1

['meshgrid'] (http://www.mathworks.com/help/matlab/ref/meshgrid.html)를보십시오. 모든 조합을 생성하는 데 절반 정도 소요됩니다. – Schorsch

답변

4
내가이 일을 더 간단한 방법이 확신

하지만 ... meshgrid 당신이 가까이 얻을 것이다 당신은 그냥 배열을 수행 할 필요가 조작은 결과를 얻을 수 있습니다 :

[BA, BB] = meshgrid(A,B); 
[BA(:) BB(:)] 
1

meshgrid보다 느리게,하지만 당신에게 다른 방법 보여 크기의 순서 :

[kron(A,ones(numel(B),1)), kron(ones(numel(A),1), B)];