通过跟随信号2 matlab重新调整信号1

时间:2014-10-21 08:03:58

标签: matlab

我说我有

A = [0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 ]
B = [0.01 0.02 0.01 0.03 0.04 0.05 0.07 0.04 0.03 0.01 0.01 0.03 0.04 0.03 0.02 0.01 0.011 0.02 0.03 0.04 0.05 0.04 0.01]

如何重新缩放A跟随最大数量B. 结果应该是

C = [0 0 0 0 0.07 0.07 0.07 0.07 0.07 0 0 0.04 0.04 0.04 0.04 0 0 0 0.05 0.05 0.05 0.05 0.05]

2 个答案:

答案 0 :(得分:4)

你可以这样使用accumarray

subs = cumsum([diff(A) > 0, 0]).*A + 1;  %//Similar to bwlabel if you have the image processing toolbox...
maximums = accumarray(subs(:), B(:), [], @max);
maximums(1) = 0;
C = maximums(subs)

答案 1 :(得分:0)

这是你想做的吗?

C = A*max(B)/max(A)