concatonate time axis using a loop
Info
Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
Ältere Kommentare anzeigen
I have a time axis which keeps resetting due to drop outs in the logging e.g.
t = 0,1,2,3,4,5,0,1,2,3,4,5,6,7,8,9,10,0,1,2,3,4,5,6,7,8,9,10,0,1,2 and so on....
What is the most efficient piece of code to generate the new time vector so that the zeros continue on from the last time value before the dropout.
t = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
Thanks!
Jordan.
1 Kommentar
I assume your real problem is a little more complex than the example you posted because to get that time vector you can just do
t = 0:numel(t) - 1;
Antworten (1)
Marc Jakobi
am 5 Okt. 2016
This should do it:
t = [0,1,2,3,4,5,0,1,2,3,4,5,6,7,8,9,10,0,1,2,3,4,5,6,7,8,9,10,0,1,2];
idx = find(ismember(t, 0));
for i = 2:length(idx)-1
t(idx(i):idx(i+1) - 1) = t(idx(i):idx(i+1) - 1) + idx(i) - 1;
end
t(idx(end):end) = t(idx(end):end) + idx(end) - 1;
2 Kommentare
Jordan Gallacher
am 5 Okt. 2016
Marc Jakobi
am 5 Okt. 2016
Bearbeitet: Marc Jakobi
am 5 Okt. 2016
Then I would I would replace
idx = find(ismember(t, 0));
with
idx = find([0, diff(t)] <= 0);
Diese Frage ist geschlossen.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!