在matlab中找到向量中元素的等级

时间:2015-04-22 18:56:49

标签: matlab

我的任务是以下列方式组合两个向量。输入是两个向量,第一个指示组的分数的索引,第二个指示我们试图分类的元素。例如,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

2 个答案:

答案 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;