Ho un programma che esegue un ciclo Desidero avere due contatori di tempo, uno per il ciclo, che indicheranno come il registro ha eseguito l'iterazione del ciclo e uno per l'intero programma. Per quanto a mia conoscenza, tic
e toc
funzioneranno solo una volta.Diversi contatori di tempo in MATLAB
risposta
Sei solo familiarità con questa sintassi tic toc:
tic; someCode; elapsed = toc;
Ma c'è un'altra sintassi:
start = tic; someCode; elapsed = toc(start);
La seconda sintassi fa lo stesso misurazione del tempo, ma consente di eseguire contemporaneamente più timer di cronometro. Assegnare l'output di tic a una variabile tStart e quindi utilizzare la stessa variabile quando si chiama toc. MATLAB misura il tempo trascorso tra il tic e il relativo comando toc e visualizza il tempo trascorso in secondi. Questa sintassi consente di eseguire più operazioni simultanee, inclusi i tempi delle operazioni nidificate (matlab documentation of tic toc).
Ecco come utilizzarlo nel tuo caso. Diciamo che questo è il tuo codice:
for i = 1:M
someCode;
end
Inserire il tic e toc in questo modo:
startLoop = tic;
for i = 1:N
startIteration = tic;
someCode;
endIteration = toc(startIteration);
end
endLoop = toc(startLoop);
È inoltre possibile utilizzare la sintassi di cui sopra per creare un vettore per il quale l'elemento esima è la misura del tempo per l'iperazione it. Come questo:
startLoop = tic;
for i = 1:N
startIteration(i) = tic;
someCode;
endIteration(i) = toc(startIteration(i));
end
endLoop = toc(startLoop);
È possibile utilizzare tic e toc alle operazioni di tempo annidati, dal aiuto Matlab per tic:
tStart=tic; any_statements; toc(tStart);
fa la stessa misurazione del tempo, ma si consente la possibilità di eseguire più di un cronometro in concomitanza. Assegnare l'output di tic a una variabile tStart e quindi utilizzare la stessa variabile quando si chiama toc. MATLAB misura il tempo trascorso tra il tic e il relativo comando toc e visualizza il tempo trascorso in secondi. Questa sintassi permette di tempo più operazioni simultanee, tra cui la tempistica delle operazioni nidificate
io non sono in grado di provare questo in questo momento, ma si dovrebbe essere in grado di utilizzare più tic
e toc
dichiarazioni se si memorizzano i valori tic
in variabili.
Leggi Matlab's documentation su questo, c'è anche una sezione su annidarli. Ecco un esempio di massima:
tStartOverall = tic;
...
tStartLoop = tic;
<your loop code here>
tEndLoop = toc(tStartLoop);
...
tEndOverall = toc(tStartOverall);
- 1. MATLAB tempo di stampa come stringa
- 2. Contatori atomici in DynamoDB
- 3. Contatori di prestazioni su iPhone
- 4. Devo usare C++ 11 emplace_back con i contatori di contatori?
- 5. Come interpretare MapReduce contatori di Performance
- 6. Informazioni sui contatori in/proc/[pid]/io
- 7. Più di 120 contatori in hadoop
- 8. Elenco sommario di contatori in python
- 9. FFT in Matlab e numpy/scipy danno risultati diversi
- 10. Corrispondenti immagini con diversi orientamenti e scale in MATLAB
- 11. I risultati dell'interp1d di SciPy sono diversi da MatLab interp1
- 12. Matlab: tracciatura in tempo reale della ROI selezionata con IMRECT
- 13. Lettura e tempo da file CSV in MATLAB
- 14. fare una matrice 'n' tempo maggiore in MATLAB
- 15. Python: contatori nidificati
- 16. diverso tempo della sessione per diversi utenti
- 17. Contatori multipli in Javascript per il ciclo
- 18. Contatori multipli in un singolo ciclo: Python
- 19. Unisci gli oggetti xts con intervalli di tempo diversi
- 20. contatori css nidificate con zeri
- 21. R ginv e Matlab pinv producono risultati diversi
- 22. Compatibilità con Matlab Gui - Diversi aspetti tra Linux e MacOS
- 23. Contatori delle prestazioni e threading
- 24. eliminazione di Gauss in Matlab
- 25. Come dividere le righe di una matrice di valori diversi in MATLAB (divisione dell'array)
- 26. Trascrizione di musica in tempo reale
- 27. Concetto di "Contatori delle prestazioni" in Linux/Unix
- 28. Ciclo di interruzione dopo un determinato periodo di tempo in Matlab
- 29. Autovalori in MATLAB
- 30. trame Disattiva in Matlab