qualsiasi metodo per accelerare il calcolo MATLAB

Y

Yingyang

Guest
Ogni volta che ho usato per ciclo in ciclo for in Matlab, è chiunque .... troppo lento può aiutare?

 
LOOP in Matlab è lento nella sua natura.

-Prova a utilizzare la funzione fornita da MATLAB per quanto possibile, dal momento che alcuni di essi non sono implementate come mfiles ma come DLL.Esso verrà eseguito molto più veloce di cercare di attuare con le operazioni di MATLAB elementari.

-O che cosa si può fare è di sostituire ciclo con alcune operazioni di Matrix, se possibile.Chiamate di funzione Se non è possibile ed è troppo lenta, scrivere in C o C e portare a MATLAB quando è necessario (o viceversa implementare loop in C / C e dopo aver MATLAB effettuare chiamate di funzione.)

 
Cercate di non utilizzare ciclo nidificato nel ciclo for.E 'molto lento

 
Una cosa da ricordare su MATLAB è che i cicli rendere il programma eseguito con estrema lentezza.Soprattutto se sono annidati.

Loop Aviod utilizzando e passare per una sorta di tecniche di manipolazione della matrice.Se u desidera accedere a un certo elemento in una riga specifica in una matrice per esempio ..... dont la mise in un ciclo e l'accesso ogni riga uno per uno ...... i loop rallentare l'intero processo soprattutto se la tua matrice è un grande.Provare acessing che directly.Hope particolare elemento questo aiuta.

Aeromobili Maniac

 
Il modo migliore del corso è quello di evitare i cicli.Ma devi avere in mente questo: Matlab è uno strumento orientato a matrice.Così il più si utilizza matrici più si accelerare i calcoli.Cerca di convertire un ciclo utilizzando matixes cioè chiamando una matrice invece che entrare in uno lopp.L'altra cosa per accelerare il calcolo è quello di definire le dimensioni della matrice.Non lasciate che Matlab calcolare la dimensione.Vale a dire definire una matrice M (3,4) ogni volta che si desidera utilizzare.Credo che questi saranno di aiuto.Naturalmente è possibile utilizzare allways C : Matlab è costruire su C pacchetti.Quindi, se non è possibile evitare i cicli, allora è meglio usare C .Nel mio caso, un programma in Matlab voluto ~ 2h a correre e mi ha dato l'1 / 5 dei risultati rispetto al programm stesso in C con la velocità di 5min ..!Spetta a voi il mio ragazzo!
D.

 
Nella programmazione MATLAB c'è una regola molto importante: Ogni volta che il ciclo contatore è utilizzato solo come un contatore e non è coinvolto nella calcoli all'interno del ciclo, il ciclo può essere sostituita da un'operazione Matrix
per esempio
x = 101:200
per n = 1:100
y [n] = x [n] ^ 2;
fine

il ciclo può essere sostituita da
y = x. ^ 2;

 
Perché Matlab è un linguaggio interpretato, si deve interpretare ogni riga in un ciclo for ogni volta che passa attraverso il ciclo.Questo rende Matlab dolorosamente lenti a fare i loop.

 

Welcome to EDABoard.com

Sponsor

Back
Top