我的任务是以下列方式组合两个向量。输入是两个向量,第一个指示组的分数的索引,第二个指示我们试图分类的元素。例如,vector [1,3,5,9]表示第一组由1组成,第二组由2和3组成,第三组由4和5组成,第四组由6,7,8组成在这种情况下,如果第二个向量是[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
答案 0 :(得分:1)
qq = [1 3 5 9];
qq2 = [2 4 6];
ceil(interp1(qq,1:numel(qq),qq2))
答案 1 :(得分:0)
这也可以使用bsxfun
:
v1 = [1,3,5,9];
v2 = [2,4,6];
result = sum(bsxfun(@gt, v2(:).', v1(:)), 1) + 1;