Putting Consecutive numbers into variables
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
DARLINGTON ETAJE
am 4 Jul. 2019
Kommentiert: Walter Roberson
am 18 Jul. 2019
I data in this format a=[1;2;3;7;0;6;7;8;9;2;4;3;14;15;16;17;0;9;2];
what I need to accomplish is to put consecutive numbers into different variables...
in this case the expected outcome is a1=[1;2;3]; a2=[6;7;8;9]; a3=[14;15;16;17]; How do I
1 Kommentar
Stephen23
am 4 Jul. 2019
Bearbeitet: Stephen23
am 4 Jul. 2019
"what I need to accomplish is to put consecutive numbers into different variables... "
Do NOT do this. Dynamically accessing variable names is one way that beginners force thmeselves into writing slow, complex, obfuscated, buggy code that is hard to debug:
Your code will be simpler and much more efficient if you simply use one container variable (e.g. a cell array, as my answer shows).
Akzeptierte Antwort
Stephen23
am 4 Jul. 2019
Bearbeitet: Stephen23
am 4 Jul. 2019
>> A = [1;2;3;7;0;6;7;8;9;2;4;3;14;15;16;17;0;9;2];
>> D = diff([false;diff(A(:))==1;false]);
>> F = @(b,e)A(b:e);
>> C = arrayfun(F,find(D>0),find(D<0),'UniformOutput',false);
>> C{:}
ans =
1
2
3
ans =
6
7
8
9
ans =
14
15
16
17
You can access the data in the cell array C using basic indexing:
3 Kommentare
Walter Roberson
am 18 Jul. 2019
b and are are dummy parameter names, similar to
function result = F(b, e)
result = A(b, e)
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Variables finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!