2017-03-20 1 views
-1

j'ai donc cette matriceMatlab soustrayant des éléments de la matrice

data =

1 
3 
4 
3 
5 
2 
5 

i besoin d'obtenir de nouvelles données en soustrayant l'élément comme celui-ci

data2-data1 
data3-data2 
data4-data3 
data5-data4 
data6-data5 
data7-data4 
... 
datan-data(n-1) 

donc de ces données la la sortie doit être im =

2 
1 
-1 
2 
-3 
3 

je tente toujours de manipuler ce code, mais a obtenu une erreur

clc 
data=[1;3;4;3;5;2;5] 
cnt=size(data,1) 

for i=1:cnt; 
    im=(data(i)-(data(i-1))); 
end 
im 

Répondre

0

diff fait ce que vous voulez.

diff(data) 

mais si vous voulez poursuivre votre approche, j'imagine l'erreur que vous obtenez est lié à data(i-1) ne peut pas être défini lors i = 1. Votre boucle doit être 2:cnt.

Une autre méthode serait data(2:end) - data(1:end-1)

+0

pouvez-vous obtenir la même réponse sans utiliser diff? juste en essayant de ne pas utiliser de fonction, mais cela répondait exactement à ma question –

+0

J'ai édité ma réponse. Bien que je ne sache pas avec certitude quelle erreur vous avez rencontrée. – busybear

+0

oh changer la boucle faire la même chose que diff, merci beaucoup –