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

Array plotten

 

psigh
Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2010, 20:02     Titel: Array plotten
  Antworten mit Zitat      
Hi,


ich versuche schon ne ganze Weile etwas zu ploten und kriege es nicht hin.

Ich hab ein Cell Array der folgenden Form


<2x1 cell> <2x1 cell> <2x1 cell> <2x1 cell> <2x1 cell> <2x1 cell> <2x1 cell>


Array{1,i}{1,1} sind Daten

Array{1,i}{2,1} sind Zahlen

So könnten die ersten drei Zellen aussehen

Code:

'2010-02-16'                     '2010-03-04'                        '2010-06-03'            
4576,527                          400,52768364743                     50038  
 



Ich möchte die Zahlen gegen die Zeit plotten ab dem Startdatum.
In diesem Fall '2010-02-16'. Und zwar tagesweise.


Man sieht, das Daten übersprungen werden. In der Zwischenzeit soll einfach der letzte Wert beibehalten werden. So das sich eine Art Treppenfunktion ergibt.




Vielen Dank,


Dominik[/code]
Private Nachricht senden Benutzer-Profile anzeigen


Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 18.08.2010, 22:09     Titel:
  Antworten mit Zitat      
Hi,

hier ein Vorschlag von mir.
Code:

x = [1 2 3]; % ersetze x-Vektor durch Zahlenreihe
y = [4576.527 400.527 50038];
 
figure1 = figure;
axes1 = axes('Parent',figure1,'XTickLabel',{'2010-02-16','2010-03-04','2010-06-03'},...
    'XTick',[1 2 3]);

xlim(axes1,[0 4]);
box(axes1,'on');
hold(axes1,'all');

plot(x,y,'Marker','.','LineStyle','none');
 

Mach mal Copy/Paste, dann siehst du es Wink


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

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2010, 22:12     Titel:
  Antworten mit Zitat      
Vielen Dank.

Mein Problem ist jetzt nurnoch, dass der sich die Zahlen und das Datum aus dem Array ziehen muss.
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 18.08.2010, 22:15     Titel:
  Antworten mit Zitat      
Hi,

poste die Vektoren, dann sehen wir weiter Wink

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

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2010, 22:17     Titel:
  Antworten mit Zitat      
Wie poste ich die denn.

Das problem ist ja, dass ich nur dieses Array habe, dass ich oben beschrieben habe.
Private Nachricht senden Benutzer-Profile anzeigen
 
psigh
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2010, 22:31     Titel:
  Antworten mit Zitat      
Mir ist jetzt nichts besseres eingefallen, als Screenshots zu machen (-:

Die sind im Anhang.

Im ersten Bild sieht man mein Array und im darauffolgenden diese 2x1 Zellen.

In jeder Zelle steht übereinander ein Datum und ein Wert. Ich will möchte diese 2x1 Zellen von links nach rechts entlang gehen und immer Zahl gegen Datum ploten.

Dominik

Cell.rar
 Beschreibung:

Download
 Dateiname:  Cell.rar
 Dateigröße:  479.63 KB
 Heruntergeladen:  403 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
psigh
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2010, 22:35     Titel:
  Antworten mit Zitat      
Dachte ja anfangs, die zahlen könnte ich einfach so plotten:


plot(portfoliowert{1,1:8}{2,1})


also zelle 1,1 dann 1,2 dann 1,3 usw.

und aus den einzelnen Zellen eben immer den zweiten Wert.


Geht aber nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 18.08.2010, 22:39     Titel:
  Antworten mit Zitat      
Hi,

dein Array besteht auch nur aus diesen drei Zeilen? Wenn ja, dann ist doch das Problem gelöst, oder?
Sonst so
Code:

array = length(Array{1,1})
x = [1:array];
y = cell2mat(Array{2,1});
 
figure1 = figure;

axes1 = axes('Parent',figure1,'XTickLabel',Array{1,1}, 'XTick',[1 2 3]);
xlim(axes1,[0 4]);
box(axes1,'on');
hold(axes1,'all');

plot(x,y,'Marker','.','LineStyle','none');
 

Gruß,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 18.08.2010, 23:03     Titel:
  Antworten mit Zitat      
Hi,

hier ein paar Anpassungen.
Code:

array = length(Array{1,1})
x = [1:array];
y = cell2mat(Array{2,1});
 
figure1 = figure;

axes1 = axes('Parent',figure1,'XTickLabel',Array{1,1}, 'XTick',x);
xlim(axes1,[min(x)-1 max(x)+1]);
box(axes1,'on');
hold(axes1,'all');

plot(x,y,'Marker','.','LineStyle','none');
 

Jetzt muss es funktionieren.

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

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2010, 23:10     Titel:
  Antworten mit Zitat      
Code:

array = length(portfoliowert{1,1})
x = [1:portfoliowert];
y = cell2mat(portfoliowert{2,1});
 
figure1 = figure;

axes1 = axes('Parent',figure1,'XTickLabel',Array{1,1}, 'XTick',x);
xlim(axes1,[min(x)-1 max(x)+1]);
box(axes1,'on');
hold(axes1,'all');

plot(x,y,'Marker','.','LineStyle','none');
 


??? Undefined function or method 'colon' for input arguments of type
'cell'.[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 18.08.2010, 23:13     Titel:
  Antworten mit Zitat      
Hi Kollege,

du muss auch bei
Code:

x = [1:array]; % SCHREIBEN
 

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

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2010, 23:15     Titel:
  Antworten mit Zitat      
Ich hab glaub ich falsch eingesetzt. So gehts auch nicht, leider.


??? Index exceeds matrix dimensions.

Code:

>> array = length(portfoliowert{1,1})
x = [1:array];
y = cell2mat(portfoliowert{2,1});
 
figure1 = figure;

axes1 = axes('Parent',figure1,'XTickLabel',portfoliowert{1,1}, 'XTick',x);
xlim(axes1,[min(x)-1 max(x)+1]);
box(axes1,'on');
hold(axes1,'all');

plot(x,y,'Marker','.','LineStyle','none');

array =

     2

 
[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 18.08.2010, 23:27     Titel:
  Antworten mit Zitat      
Hi,

das kann auch nicht funktionieren, denn dein portfoliowert ist ja ein <1x59> das habe ich aus bild1 gelesen.

Schau dir das Bsp an und wende es an dein Problem an.
Code:

% Array = {'2010-02-16'    '2010-03-04'    '2010-06-03';...
%                  457.6527, 400.527, 50038};
array = length(Array{1,1})
x = [1:array];
y = cell2mat(Array{2,1});
 
figure1 = figure;

axes1 = axes('Parent',figure1,'XTickLabel',Array{1,1}, 'XTick',x);

xlim(axes1,[min(x)-1 max(x)+1]);
box(axes1,'on');
hold(axes1,'all');

plot(x,y,'Marker','.','LineStyle','none');
 
Private Nachricht senden Benutzer-Profile anzeigen
 
psigh
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2010, 23:29     Titel:
  Antworten mit Zitat      
Ich danke Dir für Deine Hilfe.

ich sag ganz ehrlich...ich komm momentan nicht drauf. lenght(Array) ist doch 59.


Kann auch dran liegen, weil ich schon seid 11 Stunden vor dem blöden Programm sitze...


Dom
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 19.08.2010, 06:31     Titel:
  Antworten mit Zitat      
Moin,

vielleicht sollten wir mal dein Array etwas umgestalten. Probier mal folendes:
Code:

array = length(Array{1,:}{1,1})
x = [1:array];
y = cell2mat(Array{1,:}{2,1});
 
figure1 = figure;

axes1 = axes('Parent',figure1,'XTickLabel',Array{1,:}{1,1}, 'XTick',x);

xlim(axes1,[min(x)-1 max(x)+1]);
box(axes1,'on');
hold(axes1,'all');

plot(x,y,'Marker','.','LineStyle','none');
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.