2013-05-11 1 views
0

j'ai les résultats d'un processus itératif, où les résultats de chaque itération est placé à côté eachother, comme ceci:trouver la différence entre les colonnes dans la matrice sans boucles

res = 
    43.7826 38.8460 38.6889 38.6912 38.6915 
    107.0735 98.5577 98.1212 98.1170 98.1175 
-134.6218 -131.6938 -131.5378 -131.5352 -131.5352 
-105.9498 -103.1403 -102.9195 -102.9139 -102.9139 

Ce que je veux faire est de créer un matrice qui montre la différence entre chaque colonne, et une matrice qui montre le pourcentage de changement d'une colonne à l'autre.

Ceci est évidemment simple à faire en utilisant des boucles, mais y a-t-il une façon intelligente de le faire sans boucles (peut-être en utilisant certaines fonctions intégrées de Matlab)?

Merci.

Répondre

2

La commande diff (...) a effectué la différence:

diff_res = diff(res,1,2) 

dans ce cas, la différence du premier ordre dans la deuxième dimension (colonnes). Après avoir calculé le pourcentage:

per_res = diff_res(:,1:4)./res(:,1:4).*100 
Questions connexes