How to split command signal arrays in command order sequence?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/168446/image.png)
Hello I have example for this question.
A = [0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0];
then I wanna split this signal in order sequence like below
a1 = [0 0];
a2 = [1 1 1];
a3 = [0 0];
a4 = [1 1 1 1 1];
a5 = [0 0 0];
a6 = [1 1 1];
a7 = [0 0];
It's important array number(1 ~ 7) because I will analize with order sequence.
help me anybody please..
and I built code for calculate order count number with imputing signal, I would like to attach a note for you.
A = [0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0];
a = diff(A);
b = abs(a);
c = cumsum(b);
count_order_A = c(end) + 1;
% Then you can return answer '7'
1 Commento
Risposta accettata
Più risposte (1)
Guillaume
il 19 Ott 2017
I'm not entirely sure what you're asking, but if you want to split that vector, it's simply:
a = mat2cell(A, 1, diff([0, find(diff(A)), numel(A)]));
celldisp(a)
Note that this creates a cell array of vectors, that you can easily access with a{1}, a{2}, etc. Never ever create numbered variables as your a1, a2, ... It's dead easy to iterate over the elements of a cell array, it's hard to do the same with numbered variables.
Vedere anche
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!