Spit an array when the value 0 occurs until the value 2
1 回表示 (過去 30 日間)
古いコメントを表示
I have an array time (6700x1) containing all numbers from -8 to 5 in ascending order.
I would like to have a new array (time_new) based on this that contains all value between 0 and 2.
I know that I can just open the array and look at which position the value 0 occurs and at wich index the value 2 and based on this do time(3981:4962). But since I'm dealing with several arrays where the position of these 2 numbers is not always the same I would like to have something more roboust that I can always use without every time open the array and look for the teo index.
Can someone help to with that?
Thanks in advance
1 件のコメント
Dyuman Joshi
2022 年 6 月 29 日
編集済み: Dyuman Joshi
2022 年 6 月 29 日
Why do you think finding the position and using the index is not a robust method?
Use logical indexing then. (as @Voss has answered)
採用された回答
Voss
2022 年 6 月 29 日
% an array time (6700x1) containing numbers from
% -8 to 5 in ascending order:
time = linspace(-8,5,6700).'
% time_new based on this that contains
% all value between 0 and 2:
time_new = time(time >= 0 & time <= 2) % use >, < if you want to exclude 0, 2
4 件のコメント
その他の回答 (1 件)
Walter Roberson
2022 年 6 月 29 日
Your request is a bit ambiguous, so I will give two possibilities.
loc0 = find(YourArray == 0, 'first');
%use this
loc2F = find(YourArray == 2, 'first');
subsetF = YourArray(loc0:loc2F-1);
%OR use this
loc2L = find(YourArray == 2, 'last');
subsetL = YourArray(loc0:loc2L);
Now subsetF includes from the first 0 to the last value before the 2. subsetL includes from the first 0 to the last 2. You do not need both of these; I am just not clear which one you want.
Note that this code is not designed to work if there are no 0 or there are no 2.
3 件のコメント
Walter Roberson
2022 年 6 月 30 日
loc0 = find(YourArray == 0, 1, 'first');
%use this
loc2F = find(YourArray == 2, 1, 'first');
subsetF = YourArray(loc0:loc2F-1);
%OR use this
loc2L = find(YourArray == 2, 1, 'last');
subsetL = YourArray(loc0:loc2L);
参考
カテゴリ
Help Center および File Exchange で Downloads についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!