【发布时间】:2015-04-23 05:51:52
【问题描述】:
我的任务是按以下方式组合两个向量。输入是两个向量,第一个表示组的除数的索引,第二个表示我们试图分类的元素。例如向量 [1,3,5,9] 表示第一组由 1 组成,第二组由 2 和 3 组成,第三组由 4 和 5 组成,第四组由 6、7、8 组成和9等。在这种情况下,如果第二个向量是[2,4,6],那么我们得到的输出是[2,3,4]。
我知道如何在 matlab 中使用 for 循环来实现这一点。我的问题是:有没有 for 循环可以做到这一点?非常感谢您的时间和关注。
编辑:
scaleVtr=[1,3,5,9];
>> eltVtr=[2,4,6];
>> j=1; output=[];
>> for i=1:size(eltVtr,2)
while(true)
if eltVtr(i)<=scaleVtr(j)
output= [output,j];
break;
else j=j+1;
end
end
end
>> output
output =
2 3 4
【问题讨论】:
-
用您的玩具示例发布您的循环代码。同时发布代码以生成玩具示例数据。
-
@krisdestruction,这是一个玩具示例。主要任务是我有许多序列,每个序列都有一定的多重性。考虑到多样性,我需要生成它的随机样本。因此,将所有序列一组一组(相同的序列形成一个组)并一个接一个地放在一起,我使用 randomsample 函数来生成序列的索引,在玩具示例中,它将是 2、4 和 6 . 然后,我需要回去确定组索引。这就是这里发生的事情。
-
这个模式很复杂,不用单步执行代码,如果你贴一个更长的向量,也许我会看到它?我正在运行循环版本,可以重现您的输出。
-
我认为这是一个常见的操作。也许matlab团队可以添加一个函数来处理这个问题。
标签: matlab