Matlab code Frage?
Hey,
warum bekomme ich immer eine Fehlermeldung bei diesem Quellcode:
s = [0:0.3:20];
y=3.46/((1+s)(1+0.1s)(1+0.05s));
plot(x,y); grid on;
2 Antworten
Du hast s hier als Array definiert. Beider einfachen Multiplikation kommt es dann zu Fehlern, da Matlab nicht weiß, wie es etwas der Form
1/((1 + [0, 0.3, ... ])*(1 + 0.3*[0, 0.3, ...])*....)
rechnen soll. Was du hier willst ist eine elementweise Berechnung. Hierzu sind die Divisions- und Multiplikationsoperatoren in Matlab mit einem weiteren "." zu versehen. Also hätte der Ausdruck für y wie folgt aussehen müssen:
y = 3.46./((1+s).*(1+0.3*s).*(1+0.05*s));
Siehe auch:
Ich mache einen Schuss ins Blaue: plot(x,y) und Du definierst y als Funktion von "s". Das kommt mir sehr komisch vor (ich habe aber null Ahnung von Matlab, keinen Zugang und kann daher meine Hypothese auch nicht testen).
leider hatte das in matlab so stehen gehabt: plot(s,y). Die Lösung war einfach nur, dass man den Malpunkt * schreiben musste.