a=[2 3 4 7 9 12 15 18 22]
b=[2 7 15]
结果应该是这样的延伸反复值的数组,直到另一个数组值匹配MATLAB
c=[2 2 2 7 7 7 15 15 15];
值应重复进行,直至另一个矩阵值相匹配。 Matlab如何为我解决与此相关的所有问题?请帮助..
a=[2 3 4 7 9 12 15 18 22]
b=[2 7 15]
结果应该是这样的延伸反复值的数组,直到另一个数组值匹配MATLAB
c=[2 2 2 7 7 7 15 15 15];
值应重复进行,直至另一个矩阵值相匹配。 Matlab如何为我解决与此相关的所有问题?请帮助..
假设前两个数字都是一样的(否则应该是什么结果的第一个号码是什么?):
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;
对不起乱码,但它似乎得到你想要的结果(有一些假设)。
假设a
和b
进行排序,你可以试试这个
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
谢谢你的回复....以前的帖子对我的工作已经足够了,对我来说它会更有用...条件b(1)== a(1)总是满足..没有问题。谢谢非常 – user1532668 2012-07-18 00:00:34
较小,我们可以假定'了'和'B'被分类到了么? – 2012-07-17 19:29:15