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