Forum: Digitale Signalverarbeitung / DSP / Machine Learning Matlab Sprungfunktion!


von Torsten (Gast)


Lesenswert?

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
von Stefan MM (Gast)


Lesenswert?

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

von Andreas R. (rebirama)


Lesenswert?

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
von ich (Gast)


Lesenswert?

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)

von Tom E. (tkon)


Lesenswert?

Ich würde wohl folgendes verwenden:
f = 2*( sign(x-2) + 1 )

von Stefan MM (Gast)


Lesenswert?

Habs Grad ausprobiert, kürzeste Variante ist:

x=0:0.01:10;
f(x>=2)=4

Beste Grüße,

Stefan

von branadic (Gast)


Lesenswert?

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

von Torsten (Gast)


Lesenswert?

Ok Stefan und Andreas eure Vorschläge haben funktioniert.
Nochmal besten Dank euch allen.

MfG
Torsten

von Torsten (Gast)


Lesenswert?

ok Tom und branadic Versionen gehen auch

von Tom E. (tkon)


Lesenswert?

Wäre interessant zu erfahren welche Variante wohl die schnellste ist.?

von Jan (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.