how to change zero in series number

1 次查看(过去 30 天)
0 ====>2
2 ====>2
3 ====>3
5 ====>5
1 ====>1
6 ====>6
0 ====>3
0 ====>3
3 ====>3
4 ====>4
7 ====>7
2 ====>2
0 ====>6
6 ====>6
2 ====>2
0 2 3 5 1 6 0 0 3 4 7 2 0 6 2
convert in :
2 2 3 5 1 6 3 3 3 4 7 2 6 6 2
rule: I start from the bottom and look for zeros... I assign each zero equal to the NonzeroPrevious value

采纳的回答

Matt J
Matt J 2024-1-22
编辑:Matt J 2024-1-22
y=[0 2 3 5 1 6 0 0 3 4 7 2 0 6 2 ]
y = 1×15
0 2 3 5 1 6 0 0 3 4 7 2 0 6 2
y(y==0)=nan;
out=fillmissing(y,'next')
out = 1×15
2 2 3 5 1 6 3 3 3 4 7 2 6 6 2

更多回答(1 个)

Dyuman Joshi
Dyuman Joshi 2024-1-22
Assuming the last element is not zero -
in = [0 2 3 5 1 6 0 0 3 4 7 2 0 6 2].';
idx = in==0;
while any(idx)
in(idx) = in([false; idx(1:end-1)]);
idx = in==0;
end
disp(in)
2 2 3 5 1 6 3 3 3 4 7 2 6 6 2

类别

Help CenterFile Exchange 中查找有关 Time Series 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by