我说我有
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]
答案 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)