2012-01-24 2 views
0

을 얻기 위해 어떻게이 행렬이 :이 행렬

S.No. A   B 
1  5268020 1756 
2  15106230 5241 
3  24298744 9591 
4  23197375 9129 

내가 두 개의 열 [X, Y]를해야합니다 매트릭스를 싶어합니다. X는 S.No에서 값을 가져옵니다. Y는 1 또는 0 일 수 있습니다. 예를 들어, 1 5268020 1756의 경우에는 총 5268020 (1,0), 즉 (X, Y) 쌍과 1756 (1,1) 쌍이 있어야합니다.

이 행렬을 옥타브에서 어떻게 구할 수 있습니까 ?? 내가 제대로 질문을 이해한다면

+0

는 전체 필요한 출력을 제공하고 당신이 그것을 가지고 어떻게 –

+0

@PaulR 내가 내 위의 행렬에 1이 2가 있다고 가정하자의 약자로 사용자가 질문에서 원하는 분명하지 않다대로 설명해주십시오. 그런 다음 필수 매트릭스 [X Y]에서 X == 1 인 경우 네 개의 항목이 있어야합니다. (X, 1), (X, 1), (X, 0), (X, 0) – Amit

답변

1

, 당신은 X = 1 ... 반복 값에 의해 결정됩니다 4 열에서 발견 반복 항목 (X, 0)과 (X, 1)로 행렬을 채우려 A와 B. 당신이 제공 한 가치가 주어지면 거대한 행렬 (67,896,086 행)이 될 것입니다. 그래서, 당신은 (예시 적 목적을 위해 적은 요소가 대체 아래 m) 같은 것을 시도 할 수 : 호기심

res = 

    1 0 
    1 0 
    1 1 
    2 0 
    2 0 
    2 0 
    2 1 
    2 1 
    3 0 
    3 0 
    3 1 
    4 0 
    4 0 
    4 1 
    4 1 

를 산출

m = [1, 2, 1; 
    2, 3, 2; 
    3, 2, 1; 
    4, 2, 2]; 
res = []; 
for k = 1:4 
    res = [res ; [k*ones(m(k, 2), 1), zeros(m(k, 2), 1); 
       k*ones(m(k, 3), 1), ones(m(k, 3), 1)]]; 
endfor 

을하는을 고려하지 않는 어떤 이유가

1 0 n 
1 1 m 
2 0 p 
2 1 q 
... 

같은 매트릭스 n 여기서, m, p, q 열 A 및 B에서 발견되는 값은 이것은 아마도 다루기가 더 쉽습니다.