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)
。が一致しない場合や、添え字インデックスが1より小さいためにエラーがスローされた場合b(1) < a(1)
は、b(1)
が繰り返されます。a(1)
b(1) > a(1)
最初の 2 つの数値が常に同じであると仮定すると (そうでない場合、結果の最初の数値はどうなるでしょうか?):
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;
コードが乱雑で申し訳ありませんが、必要な結果が得られるようです (いくつかの仮定があります)。