Hallo, ich habe folgendes Problem mit Matlab: ich habe für x-Werte definiert: x = 0: 0.01: 10 möchte jetzt sagen das: f = 0 für x < 2 und: f = 4 für x >= 2 ist wie mach ich das brauche ich da ne Schleife zu? Vielen Dank Torsten
:
Verschoben durch Admin
Hi Torsten, hab grade kein Matlab zur Hand, aber ich glaube folgendes sollte gehen: x=0:0.01:10; f(x<2)=0; f(x>=2)=2; Beste Grüße, Stefan
es geht auch ohne schleife, für beliebige "x", auch mehrdimensional: x = 0: 0.01: 10 f = zeros(size(x)) f(find(x >= 2)) = 4
:
Bearbeitet durch Admin
f = zeros(1,length(x)); f(2/0.01+1:length(x)) = 4 Literatur über das hantieren von Vektoren in Wusellab wäre nicht schlecht;) (geht so in Scilab in Matlab, ka)
Habs Grad ausprobiert, kürzeste Variante ist: x=0:0.01:10; f(x>=2)=4 Beste Grüße, Stefan
Gehört zwar eigentlich in den DSP-Bereich, aber die Lösung ist recht einfach. Das Stichwort lautet "abschnittsweise definierte Funktion": x = 0: 0.01: 10; y(x>=0 & x<2) = 0; y(x>=2) = 4; plot(x,y); branadic
Ok Stefan und Andreas eure Vorschläge haben funktioniert. Nochmal besten Dank euch allen. MfG Torsten
Weiss nicht wie lange es die Funktion schon gibt bei Matlab, aber am besten funktioniert die vorhandene Funktion heaviside(x).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.