WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

jeden 2. Sinuswert plotten

 

kid1412
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 16.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2015, 13:25     Titel: jeden 2. Sinuswert plotten
  Antworten mit Zitat      
Hi ich bin neu hier. Ich versuche seit gestern eine einheitliche step Funktion zu plotten, aber ich komme gar nicht weiter. Deshalb dachte ich mir, dass ich erstmal versuche punkte bei einer sinuskurve zu plotten.
Mein Anfangsziel ist es erstmal für jeden 2. X-Wert zu gucken ob sin(x)>0 ist, wenn ja soll er mir den Wert auf 1 setzen und wenn nicht den Wert auf -1. Aber irgendwie liegen alle Punkte bzw. Sterne bei -1
Sieht ungefähr so aus:

Code:

clear all
clc;
clear;
x=[0:2:30];
y=sin(x);

    if (y>0);
        k=1;  
    else
            k=-1;
    end


plot(x,k,'*')
axis ([0 30 -2 2 ])
grid on
 


Danke.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2015, 13:34     Titel:
  Antworten mit Zitat      
Hallo,

k ist auch nur ein Wert, der ständig überschrieben wird. So ginge es:

Code:
x=[0:2:30];
y=sin(x);
k = -1*ones(size(y));
k(y>0) = 1;

plot(x,k,'*')
axis ([0 30 -2 2 ])
grid on


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
kid1412
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 16.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2015, 13:57     Titel:
  Antworten mit Zitat      
Hey Harald! Vielen Dank für die schnelle Antwort.
Es klappt ganz prima.

Aber ich kann, dass irgendwie doch nicht so wie ich dachte auf mein eigenes Problem übertragen Laughing

Ich habe eine aufsummierte Sinuskurve geschrieben. Und da will ich jetzt zB. jeden 2. Wert überprüfen und gucken ob die Sinuskurve > 0 ist, wenn ja soll der Wert im intervall von [x-0.5;x+0.5] 1 ergeben und falls es kleiner ist soll es im selben intervall -1 ergeben.
Ich hab die sinuskurve mit der heaviside methode versucht, aber mein Ziel ist es, dass die Rechtecke die dabei entstehen, die selbe Länge haben soll und das haben sie so leider nicht gehabt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2015, 14:11     Titel:
  Antworten mit Zitat      
Hallo,

der Beschreibung nach ist es schwierig nachzuvollziehen, was du gemacht hast.
Wenn du den Code zur Verfügung stellen kannst, wäre das hilfreich.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
kid1412
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 16.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2015, 14:44     Titel:
  Antworten mit Zitat      
Oh tut mir leid. Hier ist der Code, der gibt jetzt eine Heaviside funktion von der aufsummierten Sinusfunktion aus. Aber eigentlich will ich immer nur jeden, sagen wir mal, 2. X wert überprüfen und wenn die funktion > 0 ist dann soll er im intervall von [x-1;x+1] den Wert 1 haben, egal ob die funktion beim wert x+1 oder x-1 kleiner 0 ist.

Mein Ziel ist es eine Step funktion zu bilden, wo die rechtecke die selbe längen oder ein vielfaches von der länge haben.

Code:

clc;
clear;
 

f=0;
n=50;    %Anzahl der Sinus funktion
x= 0:0.001:30;    

for i=1:n;
   
   
    a=rand(1) %Amplitude[0,1]
    j=4+random('unid',2) % Wellen Richtung [4,6] integers
    b =(2*pi/L)*j; % frequenz
    d=rand(1)*pi % phasen verschiebung [0,pi]
   
    f = f + a*(sin(b*x+d)) ;
   

end
f=f/n % hier wurde die Funktion nochmal skaliert

k=heaviside(f)  



plot(x,k)
axis ([0 30 -2 2])
hold on
plot(x,f)

hold off
grid on


Danke.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.