Attention de bien comparer la même chose...
function test_flipud
clc
A = (1:1e6).' ;
tic
A = flipud(A);
toc
Type: Messages; Utilisateur: Jerome Briot
Attention de bien comparer la même chose...
function test_flipud
clc
A = (1:1e6).' ;
tic
A = flipud(A);
toc
Effectivement, cela résout le problème de mémoire.
En utilisant la fonction ci-dessus comme sous-fonction dans le test précédent, on obtient ceci :
...
Tout à fait, mais le temps d'exécution du code pourrait s'allonger sous MATLAB.
Dans ce cas, il serait encore plus judicieux de passer en langage bas niveau C/Fortran à l'aide des fichiers MEX.
Il me semble que non => Is subscript referencing slower than : ?
J'ai comparé ces deux méthodes :
Sous-fonction :
function test_sf
pause(.5)
disp('start')
% Augmentez ou diminuez la valeur suivante en fonction
La quantité de mémoire utilisée sera différente. Dans ce cas, le vecteur temporaire W ne "sert à rien" mais il utilise autant de mémoire que V. Si la taille de V est significative, cela peut...
La seconde solution proposée utilise la bonne méthode... mais pas complètement. En effet, passer les éléments d'un vecteur un par un réduira la quantité de mémoire nécessaire, mais ralentira très...
Un dernier indice => http://blogs.mathworks.com/loren/2008/01/16/nested-functions-and-variable-scope/
J'ai oublié de préciser que cette optimisation de mémoire ne peut avoir lieu que si la fonction écrite précédemment est elle-même appelée dans une autre fonction plus globale.
Indice : il existe...
C'est en effet effectivement la solution. L'utilisation de l'indexage linéaire permet de s'affranchir de l'orientation du vecteur d'entrée.
Ceci est relativement utile lorsque l'on développe un...
------------------------------------------------------
Défi : créer une fonction qui, pour un vecteur donné, renvoie ce même vecteur, dans l'ordre inverse et dont chaque valeur est multipliée par...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.