function C = Cm(zeta,H2) for m = 1:length(zeta)% erster Eintrag(zeta) : Einzelergebnisse(zeta) : bis zum letzten Eintrag(zeta)
C(m) = (-1)^m * 2 .* zeta(m) .*(zeta(m).^2 + 2*H2 + H2^2)^(-1);
end end
"Funktionen" und "Scripts" sind etwas grundsätzlich unterschiedliches. Ersteres hat Input- und Output-Argumente, letzteres teilt die Variablesn mit der aufrufenden Funktion. Deshalb ist "Funktionsskript" ein verwirrender Ausdruck.
Jede Funktion hat ihren eigenen Workspace. Deshalb ist "die errechneten Ergebnisse im Workspace haben" nicht eindeutig. In welchem?
Zitat:
Rufst du eine Funktion innerhalb einer Funktion auf, musst du die Werte in der inneren Funktion erst an die erste zurückgeben und dann von dieser an den Workspace zurück geben.
Code:
function main
disp('This is the main function');
x = 0.1;
y = subfunction(x);
disp(y) end
Wenn Du nun main() durchlaufen lässt, wird subfunction() aufgerufen und gibt y an main() zurück. Dort ist es nun im Workspace der Funktion main() sichtbar. Danach wird main() wieder verlassen und Matlab hat wieder den Base-Workspace (also den im Command Window) aktiv. Dort erscheint y natürlich nicht. Es ist zwar grundsätzlich eine schlechte Idee, den Base Workspace mit Variablen vollzustopfen, aber falls Du einenguten Grund dazu hast, verwende einen Output:
Code:
function y = main % Here y is returned disp('This is the main function');
x = 0.1;
y = subfunction(x);
disp(y) 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.