Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab中矢量元素的全比例组合_Matlab_Combinations - Fatal编程技术网

Matlab中矢量元素的全比例组合

Matlab中矢量元素的全比例组合,matlab,combinations,Matlab,Combinations,我有一个像这样的向量: A=[3 4 5 6]; 我想得到一个新的矩阵B,它由所有可能的元素比例组合组成,避免只有一个元素的行(然后每行至少有两个元素),例如: 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... ]; 你能帮帮我吗 提前感谢以下是一种方法:

我有一个像这样的向量:

 A=[3 4 5 6];
我想得到一个新的矩阵B,它由所有可能的元素比例组合组成,避免只有一个元素的行(然后每行至少有两个元素),例如:

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...  
];
你能帮帮我吗

提前感谢

以下是一种方法:

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

你所说的“缩放”是什么意思?这个词应该很清楚。从这个例子中,似乎“缩放”这个词应该被删除。否则,我不知道这是什么意思。谢谢