a=[2 3 4 7 9 12 15 18 22]
b=[2 7 15]
结果应该是这样的
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]
结果应该是这样的
c=[2 2 2 7 7 7 15 15 15];
这些值应该重复,直到另一个矩阵值匹配。Matlab 如何为我提供与此相关的所有问题的解决方案?请帮助..
假设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 而引发错误。
假设前两个数字始终相同(否则结果的第一个数字应该是什么?):
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;
对混乱的代码感到抱歉,但它似乎得到了你想要的结果(有一些假设)。