Azzera filtri
Azzera filtri

I want to sort a data like this as given below

1 visualizzazione (ultimi 30 giorni)
0 0 3 4 5 0 0 0 0 10 11 12 13 14 15 0 0 0 0 20 21 22 0 0 0 is the data in which i have to subtract (5-3),(15-10),(22-20) can anybody tell me how to do it
  2 Commenti
Stephen23
Stephen23 il 5 Ago 2016
@ RAJAN PRASAD: your question is not clear: do you want to sort the data (as your title states), or do you want to calculate differences between values (as your examples shows) ?
RAJAN PRASAD
RAJAN PRASAD il 6 Ago 2016
I wanted to subtract only it helped

Accedi per commentare.

Risposta accettata

Stephen23
Stephen23 il 5 Ago 2016
Modificato: Stephen23 il 6 Ago 2016
This code locates the beginning and end values of any non-zero sequence, and calculates their differences:
>> X = [0,0,3,4,5,0,0,0,0,10,11,12,13,14,15,0,0,0,0,20,21,22,0,0,0];
>> Y = diff([0,X,0]>0);
>> X(Y(2:end)<0) - X(Y(1:end-1)>0)
ans =
2 5 2
Have a look at X(Y(2:end)<0) and X(Y(1:end-1)>0) if you want to know how this works.

Più risposte (0)

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by