Putting Consecutive numbers into variables

1 Ansicht (letzte 30 Tage)
DARLINGTON ETAJE
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
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).

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Stephen23
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
DARLINGTON ETAJE
DARLINGTON ETAJE am 18 Jul. 2019
F = @(b,e)A(b:e);
Please explain what b and e mean
are they variables...I don't know how to use them for a new dataset
Walter Roberson
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices 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!

Translated by