Dies und Das
Dies und Das - Aktuelle Themen:
- Joomla hacked by ambassador
- Matlab-Tipp: tic & toc Funktionen
Hier gibt's ab und zu Tipps und Tricks zu verschiedenen (Computer)-Angelegenheiten, Kommentare oder sonst welche Gedanken von denen ich denke, sie in die Welt hinaus tragen zu müssen ;o)
Matlab-Tipp: Output der tic/toc Funktionen
Wer in Matlab etwas aufwendigere Programme schreibt, kennt bestimmt die Vorzüge der tic und toc Funktionen: Diese dienen ganz einfach dazu, die Zeit zwischen ihren Aufrufen in Sekunden zu erfassen. Wird tic ausgelöst, beginnt ein Counter zu laufen, bei toc wird er angehalten und die verstrichene Zeit in Sekunden ausgegeben.
Das ist praktisch, um z.B. die Effizienz verschiedener Methoden auszuprobieren. Läuft ein Programm einmal mehrere Minuten oder gar Stunden, sieht man aber auch die Schwäche von tic und toc: Die Umrechnung von 1342567 Sekunden in eine vernünftige Zeit ist im Kopf nicht so einfach.
Deshalb habe ich eine kleine Funktion (gettime) geschrieben, die diese Umrechnung übernimmt und eine vernünftige Ausgabe erzeugt.
% function gettime: takes time in seconds and returns string with hours,
% minutes and seconds
function time = gettime(t)
time = [num2str(floor(t/3600)) 'h ' ...
num2str(floor(mod(t,3600)/60)) 'm ' ...
num2str(floor(mod(mod(t,3600),60))) 's'];
end
Die Funktion kann z.B, folgendermaßen verwendet werden:
function myfunction()
tic;
display("Start expensive calculation...")
% do some expensive calculations
% ...
% ...
t = toc;
display(['Done. (' gettime(t) ')']);
end
Output:
>> myfunction >> Start expensive calculation... >> Done. (1h 3m 46s)
Wenn ihr Programme schreibt, die mehrere Tage laufen, könnt ihr die Funktion natürlich erweitern (Tipp: 1 Tag hat 24 Stunden... ;o)).