psigh
Forum-Century
Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
Verfasst am : 18.08.2010, 20:02
Titel : Array plotten
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
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]
Vito
Forum-Guru
Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
Verfasst am : 18.08.2010, 22:09
Titel :
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
Gruß,
Vito
psigh
Themenstarter
Forum-Century
Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
Verfasst am : 18.08.2010, 22:12
Titel :
Vielen Dank.
Mein Problem ist jetzt nurnoch, dass der sich die Zahlen und das Datum aus dem Array ziehen muss.
Vito
Forum-Guru
Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
Verfasst am : 18.08.2010, 22:15
Titel :
Hi,
poste die Vektoren, dann sehen wir weiter
Gruß,
Vito
psigh
Themenstarter
Forum-Century
Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
Verfasst am : 18.08.2010, 22:17
Titel :
Wie poste ich die denn.
Das problem ist ja, dass ich nur dieses Array habe, dass ich oben beschrieben habe.
psigh
Themenstarter
Forum-Century
Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
Verfasst am : 18.08.2010, 22:31
Titel :
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
Beschreibung:
Download
Dateiname:
Cell.rar
Dateigröße:
479.63 KB
Heruntergeladen:
403 mal
psigh
Themenstarter
Forum-Century
Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
Verfasst am : 18.08.2010, 22:35
Titel :
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.
Vito
Forum-Guru
Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
Verfasst am : 18.08.2010, 22:39
Titel :
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
Vito
Forum-Guru
Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
Verfasst am : 18.08.2010, 23:03
Titel :
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
psigh
Themenstarter
Forum-Century
Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
Verfasst am : 18.08.2010, 23:10
Titel :
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]
Vito
Forum-Guru
Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
Verfasst am : 18.08.2010, 23:13
Titel :
Hi Kollege,
du muss auch bei
Gruß,
Vito
psigh
Themenstarter
Forum-Century
Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
Verfasst am : 18.08.2010, 23:15
Titel :
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]
Vito
Forum-Guru
Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
Verfasst am : 18.08.2010, 23:27
Titel :
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 ') ;
psigh
Themenstarter
Forum-Century
Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
Verfasst am : 18.08.2010, 23:29
Titel :
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
Vito
Forum-Guru
Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
Verfasst am : 19.08.2010, 06:31
Titel :
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 ') ;
Gehe zu Seite 1 , 2 Weiter
Einstellungen und Berechtigungen
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
| 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.