2016-04-16 9 views
1
function [dhdt, x] = velocity(t, h) 
    dhdt = -9.8 * t; 
    x = 4 * t; 
end 

Also das ist im Grunde meine Funktion (mit dem Dateinamen velocity.m). Zuerst dachte ich, dass zwischen den Klammern [] die Ausgabe wäre. Als ich das Befehlsfenster eintippte, bekam ich nur eine Antwort.Wie funktionieren Funktionen wirklich in MATLAB?

velocity(1) 

%// -9.8 

Ich erwartete ein Zwei-Element-Vektor zu erhalten, die sowohl dhdt und x

velocity(1) 
%// -9.8 4 

Warum ist das?

Antwort

4

Matlab zeigt nur eine Ausgabe an, wenn Sie sie nicht in Variablen speichern ... Geben Sie [dhdt, x] = velocity (1) ein und Sie werden beide Werte sehen und in Variablen speichern lassen.

Sie kommen auch in diesem Fall nur mit dem nicht zur Verfügung stellen des h-Parameters, weil es nicht in der Funktion verwendet wird. Wenn Sie h in velocity() und celled velocity (1) verwenden, würde es brechen.

+0

ty! und ich wusste über das "h" -Ding, aber danke ur sehr detailliert – inspd

+0

Um dies weiter auszuführen, wenn Sie ein Array zurück wollen, erstellen Sie stattdessen das Array innerhalb Ihrer Funktion und geben diese eine Variable zurück: 'function y = velocity (t); y = [-9.8 * t, 4 * t]; Ende' – Suever

Verwandte Themen