2016-09-08 8 views
1

のベクトルの要素のすべてのスケールの組み合わせは、私はこのようなベクトルを持っています(各行に少なくとも2つの要素があります)。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