【发布时间】:2014-08-23 05:31:15
【问题描述】:
我有一个存储唯一面积值的向量。我正在使用 for 循环来生成一个数组,其中包含这些区域的每个可能组合的总和,如下所示:
A_values=[155 143 193.5 233.25 419.7 351.9 256.8 1054.9 997.5 997.5 726.2 73.5 66.8 62 82.5]
comb_sums=[];
indexes=[];
for x=1:length(A_values)
comb_sums=[comb_sums;
sum(combntns(A_values,x),2)];
end
现在我想获取每个组合中给出的元素的索引。例如,如果一些可能的给定组合是 [143]、[726.2 66.8] 和 [155 419.7 256.8],那么代码会给我一个这样的数组:
indexes=[ 2 0 0 0;
11 13 0 0;
1 5 7 0];
我从 for 循环中得到的数组显然比上面 indexes 变量中给出的示例要大得多,所以 indexes 会也给我一个更大的数组。
【问题讨论】:
-
你怎么知道
indexes会有 4 列?每次迭代不会改变吗?对于最终迭代,列数将是length(A_Values)。 -
是的,你是对的!列数为长度(A_values)。我只是想给出一个关于我正在寻找的输出的简短示例,但没有注意到这一点。谢谢!
标签: arrays matlab indexing combinations