2016-09-08 4 views
1

벡터 요소의 모든 스케일 조합이 같은 벡터를 가지고 (각 행에 대해 최소한 두 개의 요소가 있어야 함) 예 :matlab에

B=[3 4 5 6; 
    3 4 5 0; 
    3 4 0 0; 
    0 4 5 6; 
    0 0 5 6; 
    3 0 5 6; 
    3 0 5 0; 
    0 0 5 6; 
    3 4 0 6; 
    0 4 0 6; 
    3 4 0 0; 
    etc... 
]; 

도와 주시겠습니까? 사전에

감사

+0

당신이 "조정"이란 무엇을 의미합니까? –

+0

이 용어는 예문 인 – Anassa

+0

을 분명히 읽어야합니다. 예제에서 "확장"이라는 용어는 모두 제거되어야합니다. 다른 말로하면, 내가 의미하는 바가 전혀 없음 –

답변

1

여기에 그것을 할 수있는 방법이있다 :

A = [3 4 5 6]; % data 
N = 2; % minimum number of elements that should be present 
p = dec2bin(1:2^numel(A)-1)-'0'; % binary pattern. Each row is a combination 
s = sum(p,2)>=N; % index to select rows of p that have at least N ones 
result = bsxfun(@times, A, p(s,:)); % multiply with singleton expansion 

이 당신의 예에서, 제공,

result = 
    0  0  5  6 
    0  4  0  6 
    0  4  5  0 
    0  4  5  6 
    3  0  0  6 
    3  0  5  0 
    3  0  5  6 
    3  4  0  0 
    3  4  0  6 
    3  4  5  0 
    3  4  5  6 
+0

완벽 함. 고마워. – Anassa