|
|
Daten in eine vordefinierte Matrix einlesen |
|
simsl |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 16.10.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.10.2014, 10:01
Titel: Daten in eine vordefinierte Matrix einlesen
|
|
|
|
|
Hallo zusammen,
ich möchte eine Simulation für ein Jahr in stündllichen Zeitschritten durchführen. Ich habe also sämtliche Daten für 8760 Zeiten vorliegen.
Um mir am Ende das Plotten von Tagesverläufen zu erleichtern, möchte ich in Matrixen der Größe 24 x 365 rechnen.
Nun möchte ich meine Grundparameter, wie beispielsweise Wetterdaten, aus Excel in Matlab einlesen. Ich habe diese in Spalten mit je 8760 Zeilen vorliegen.
Mein Problem ist nun, dass ich es nicht schaffe die Daten in eine Matrix der Größe 24 x 365 zu bekommen, hätte dazu jemand eine Idee und eine elegante Lösung?
Vielen vielen Dank schonmal!
Grüße,
Simone
Anbei meine bisherigen Versuche:
A=zeros (365,24);
A=xlsread('weather_input.xlsx',1,'B2:B8761');
-> liefert eine 8760x1 Matrix
A=zeros (365,24);
A(365,24)=xlsread('weather_input.xlsx',1,'B2:B8761');
-> liefert Fehlermeldung: Subscripted assignment dimension mismatch.
A=zeros(365,24);
B=zeros (8760,1);
B=xlsread('weather_input.xlsx',1,'B2:B8761');
C=A+B
-> liefert Fehlermeldung: Error using +
Matrix dimensions must agree.
A=ones(365,24);
B=zeros (8760,1);
B=xlsread('weather_input.xlsx',1,'B2:B8761');
C=A*B
-> liefert Fehlermeldung: Error using *
Inner matrix dimensions must agree.
Und zu guter letzt versuchte ich eine Schleife, habe aber noch keine funktionierende Lösung gefunden
A=zeros(365,24);
for i = (1:8769)
if i==1:24;
A(i)=xlsread('date_input.xlsx',1,'B1:B25');
j=(1:365);
n=(1:365);
n=j*24;
else if i==n;
A(n,n+24)=xlsread('date_input.xlsx',1,'Bn:Bn+24);
end
-> Fehlermeldung: A(n,n+24)=xlsread('date_input.xlsx',1,'Bn:Bn+24);
Error: String is not terminated properly.
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 16.10.2014, 11:08
Titel:
|
|
Sieht nach Interpolation aus, richtig? Also INTERP1, INTERP2.
Andreas
|
|
|
mats |
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 16.10.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.10.2014, 11:44
Titel:
|
|
Wenn ich dich richtig verstehe möchtest du die Daten einfach nur anders anordnen. Dafuer gibt es den Befehl reshape:
A=reshape(B,365,24)
Dieser Befehl nimmt sich deine 8760x1 Matrix B und schreibt die ersten 365 Einträge in die erste Spalte von A. Dann die nächsten 365 in die zweite usw. und am Ende hast du A als eine 365x24 Matrix wie du sie haben willst. Allerdings solltest du aufpassen, dass B auch wirklich so angelegt ist. Wenn in B die Daten chronologisch geordnet sind, dann suchst du wahrscheinlich eher
B=xlsread('weather_input.xlsx',1,'B2:B8761');
A=reshape(B,24,365)
so hat dann A in jeder Spalte die 24 Stunden eines Tages. Hab ich dich richtig verstanden?
|
|
|
simsl |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 16.10.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.10.2014, 12:34
Titel:
|
|
Besten Dank für eure Antworten,
zu Interp. -> danke, das wird mir wahrscheinlich beim plotten noch hilfreich sein
zu reshape -> super das ist genau das was ich suchte!!! besten Dank!
|
|
|
|
|
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 - 2024
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.
|
|