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

Plot

 

psigh
Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2010, 19:55     Titel: Plot
  Antworten mit Zitat      
Hallo,

ich habe habe wiedermal eine Frage zum PLotten.

Ich habe zwei Vektoren. In einem stehen Werte einer Aktie.

In dem anderen stehen Nullen, Einsen und Zweien. Beide Vektoren haben gleich viele Zeilen.

Der zweite Vektor enthält Kauf- und Verkaufsignale und könnte so aussehen.


Vec=[0;0;1;0;0;0;2;0;1;0,0,0,0,2]

Eins bedeutet kaufen und zwei verkaufen.




Ich möchte jetzt den Verkauf der Aktie plotten. Es sollen aber in dem Aktienplot die Punkte rot (oder so) eingekreist sein, wo in den korrespondierenden Spalten in "Vec" eine eins ist bzw. grün eingekreist sein, wo in den korrespondierenden Spalten in "Vec" eine zwei steht.


Vielleicht kann mir jemand dabei helfen.


Vielen Dank,


Dominik
Private Nachricht senden Benutzer-Profile anzeigen


lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 12.09.2010, 01:47     Titel:
  Antworten mit Zitat      
Hallo Dominik,

vllt geht es auch elleganter aber das ist mir auf die Schnelle eingefallen und es funktioniert:

Code:


Vec=[0;0;1;0;0;0;2;0;1;0;0;0;0;2];
x = (1:14);
Preis = rand(14,1)*100;
figure
hold on

for i =1:length(Preis)
   
    if Vec(i)==1;
        plot(x(i),Preis(i),'MarkerFaceColor',[1 0 0],'MarkerSize',8,'Marker','o');
    elseif Vec(i)==2
        plot(x(i),Preis(i),'MarkerFaceColor',[0 1 0],'MarkerSize',8,'Marker','o');
    else
        plot(x(i),Preis(i),'MarkerSize',8,'Marker','o');
    end
end

plot(Preis,'-')

 


Gruß,

lilov
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.09.2010, 21:47     Titel:
  Antworten mit Zitat      
Hallo Dominik,

Lilov's Code mit logical indexing:
Code:

Vec = [0,0,1,0,0,0,2,0,1,0,0,0,0,2];
x = 1:14;
Preis = rand(14,1)*100;

figure
hold('on');
vecIs1 = (Vec == 1);
vecIs2 = (Vec == 2);
plot(x(vecIs1), Preis(vecIs1), ...
   'MarkerFaceColor', [1 0 0], 'MarkerSize', 8, 'Marker', 'o');      plot(x(vecIs2), Preis(vecIs2), ...
   'MarkerFaceColor', [0 1 0], 'MarkerSize', 8, 'Marker', 'o');
plot(Preis, '-');
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
psigh
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.09.2010, 21:50     Titel:
  Antworten mit Zitat      
Vielen Dank für Eure Hilfe!
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.