Possible to simplify vector expression?
Afficher commentaires plus anciens
While writing a script...
My goal was to have a vector defined with a long list of terms that show the difference in adjacent temperatures for an already defined column of values(male_temperature).
temp_diff = [(male_temperature(1) - male_temperature(2)) (male_temperature(2) - male_temperature(3)) all the way to (male_temperature(23) - male_temperature(24))]
after much trouble and research, managed to simplify it to:
for k = 1:23;
v = genvarname('d', who);
eval([v ' = male_temperature(k) - male_temperature(k+1)']);
end
temp_diff = [d d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22]
clear d d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22
Is there a better way to simplify this or a different way of doing this. Is there any way to better simplify the vector expression (temp_diff) at all? It is inefficient having to type out all these variables.
1 commentaire
John Mahoney
le 5 Déc 2014
Do you want this?
temp_diff = diff(male_temperature)
Actually, since you define temp_diff as [mt(1) - mt(2), …] I think you want
temp_diff = -diff(male_temperature)
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!