2012-07-17 64 views

回答

1

假设前两个数字都是一样的(否则应该是什么结果的第一个号码是什么?):

prevj = b(1); 
last = 1; 
c = a; 
for j = b(2:end) 
    ind = find(c == j); 
    c(last:ind-1) = prevj; 
    last = ind; 
    prevj = j; 
end 
c(last:end) = prevj; 

对不起乱码,但它似乎得到你想要的结果(有一些假设)。

2

假设ab进行排序,你可以试试这个

c = b(sum(bsxfun(@(x,y) x >= y, a, b(:)))); 

这导致

c = 
    2  2  2  7  7  7 15 15 15 

请注意,这只有当b(1) == a(1)。如果b(1) < a(1)b(1)会反复,虽然它不匹配a(1),如果b(1) > a(1)抛出一个错误,因为标指数大于1

+0

谢谢你的回复....以前的帖子对我的工作已经足够了,对我来说它会更有用...条件b(1)== a(1)总是满足..没有问题。谢谢非常 – user1532668 2012-07-18 00:00:34

相关问题