Verfasst am: 21.07.2009, 11:19
Titel: Wie lautet Befehl für leere Functionsvariablen
Hallo,
ich bastle gerade an einer Funktion, die natürlich Inputargumente erwartet.
Wie lautet denn der Befehl, wenn ein Inputargument leer gelassen wird und man dieses dann automatisch setzt.
Denn mit if ~isempty(startzeitH) geht das nicht !!!
Code:
function sec2timeString = sec2time( sekunden, startzeitH, startzeitM, startzeitS )
%SEC2TIME - Diese Funktion rechnet Sekunden in eine Uhrzeit um
%sekunden - Eingabe der umzurechnenden Sekunden in Zeit als Integer
%startzeitH - Eingabe der Stunden ab der gezählt werden soll (Integer)
%startzeitM - Eingabe der Minuten ab der gezählt werden soll (Integer)
%startzeitS - Eingabe der Sekunden ab der gezählt werden soll (Integer)
%startzeit - Zeit, ab der gezählt werden soll. Standard ist Mitternach
%00:00:00
%Uhr. Eingabe der Startzeit als Interger
% Also sekunden zu HH:MM:SS und Ausgabe in sec2timeString % Bsp.: sec2time(120, 0,0,0) --> 00:02:00 % sec2time(150, 0,0,0) --> 00:02:30 % sec2time(180, 23,57,0) --> 00:00:00 % Juli.2009 - Von R. W. - frei verwendbar
% Kontrollstruktur, falls die Mitternacht als Startzeit setzt falls Startzeiten nicht gesetzt sind if ~isempty(startzeitH)
H = startzeitH;
else
H = 00;
end
Gerafft und Geschafft.....Danke
Habs eleganter gemacht.......
wer den Code haben mag, bitte schön:
Code:
function sec2timeString = sec2time( sekunden, varargin)
%SEC2TIME - Diese Funktion rechnet Sekunden in eine Uhrzeit um
%sekunden - Eingabe der umzurechnenden Sekunden in Zeit als Integer
%startzeitH - Eingabe der Stunden ab der gezählt werden soll (Integer)
%startzeitM - Eingabe der Minuten ab der gezählt werden soll (Integer)
%startzeitS - Eingabe der Sekunden ab der gezählt werden soll (Integer)
%startzeit - Zeit, ab der gezählt werden soll. Standard ist Mitternach
%00:00:00
%Uhr. Eingabe der Startzeit als Interger
% Also sekunden zu HH:MM:SS und Ausgabe in sec2timeString % Bsp.: sec2time(120, 0,0,0) --> 00:02:00 % sec2time(150, 0,0,0) --> 00:02:30 % sec2time(180, 23,57,0) --> 00:00:00 % Juli.2009 - Von R. Witek - frei verwendbar
% Kontrollstruktur, die Mitternacht als Startzeit setzt falls Startzeiten % nicht gesetzt sind und diese korregiert try
H = varargin{1};
M = varargin{2};
S = varargin{3};
catch
H = 0;
M = 0;
S = 0;
end
%Berechnung der Uhrzeit in HH:MM:SSFormat if sekunden>=3600
H = H + floor(sekunden/3600);
sekunden = mod(sekunden,3600);
if H>=24
H = mod(H,24);
end end
if sekunden>=60
M = M + floor(sekunden/60);
sekunden = mod(sekunden,60);
end
S = sekunden - (floor(sekunden/3600) + floor(sekunden/60));
Ich überprüfe in der Regel mit NARGIN wie viele Argumente übergeben wurden. Bei dir würde ich das dann so machen:
Code:
% try % H = varargin{1}; % M = varargin{2}; % S = varargin{3}; % catch % H = 0; % M = 0; % S = 0; % end if nargin<4
H = 0;
M = 0;
S = 0;
else
H = varargin{1};
M = varargin{2};
S = varargin{3};
end
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.