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

Daten in Matlab einlesen

 

popoff_1
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 11:43     Titel: Daten in Matlab einlesen
  Antworten mit Zitat      
Hallo,

ich möchte gerne Excel Daten in Matlab einlesen. Hier ein kleiner Ausschnitt der Daten:
Date,Open,High,Low,Close,Volume
1789-05-01,0.51,0.51,0.51,0.51
1789-06-01,0.51,0.51,0.51,0.51
1789-07-01,0.5,0.5,0.5,0.5
1789-08-01,0.5,0.51,0.5,0.51
1789-09-01,0.51,0.51,0.5,0.51
1789-10-01,0.51,0.51,0.51,0.51
1789-11-01,0.51,0.51,0.5,0.5
1789-12-01,0.5,0.5,0.5,0.5
1790-01-01,0.5,0.5,0.49,0.49
1790-02-01,0.49,0.49,0.49,0.49
1790-03-01,0.49,0.51,0.49,0.5
1790-04-01,0.5,0.5,0.49,0.5
1790-05-01,0.51,0.52,0.51,0.52
1790-06-01,0.52,0.53,0.52,0.53
1790-07-01,0.53,0.53,0.53,0.53
1790-08-01,0.53,0.54,0.53,0.54
1790-09-01,0.54,0.55,0.54,0.55
1790-10-01,0.55,0.57,0.55,0.56
1790-11-01,0.56,0.57,0.55,0.55
1790-12-01,0.57,0.57,0.57,0.57
1791-01-01,0.57,0.58,0.57,0.58
1791-02-01,0.58,0.59,0.58,0.59
1791-03-01,0.59,0.59,0.59,0.59
1791-04-01,0.6,0.6,0.6,0.6


Hier ist mein Skript
Code:
function [ date price ] = import_raw_data(filename)
%% Setup the Import Options and import the data
opts = delimitedTextImportOptions("NumVariables", 9);

% Specify range and delimiter

opts.Delimiter = ",";

%% Specify column names and types
opts.VariableNames = ["Date", "Open", "High", "Low", "Close", "Volume"];
opts.VariableTypes = ["datetime", "double", "double", "double", "double", "string"];

% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";

% Specify variable properties
opts = setvaropts(opts, "Volume", "WhitespaceRule", "preserve");
opts = setvaropts(opts, "Volume", "EmptyFieldRule", "auto");
opts = setvaropts(opts, "Date", "InputFormat", "yyyy-MM-dd");

% Import the data
array_out = table2array((readtable(filename, opts)));  % convert table to array
date = array_out(:,1);
price = array_out(:,2);


end


Aber es funktioniert nicht, da ich glaube dass das Datum nicht korrekt formatiert ist. Was muss ich da am Skrip abändern?


Fehlermeldung:
Error using table2array (line 37)
Unable to concatenate the specified table variables.

Caused by:
Error using datetime/horzcat (line 1335)
All inputs must be datetimes or date/time character vectors or date/time strings.

Unbenannt.JPG
 Beschreibung:

Download
 Dateiname:  Unbenannt.JPG
 Dateigröße:  82.32 KB
 Heruntergeladen:  173 mal


Zuletzt bearbeitet von popoff_1 am 11.07.2020, 12:13, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

Zitat:
Aber es funktioniert nicht, da ich glaube dass das Datum nicht korrekt formatiert ist.

Wie äußert sich, dass es nicht funktioniert? Welche Fehlermeldung bekommst du oder wie weicht das Verhalten vom erwarteten ab?

Bitte Dateien oder einen Ausschnitt wirklich als solche anhängen, nicht einen Screenshot. Nur so kann man die Probleme wirklich nachvollziehen, ohne die Datei abzutippen, und dazu hat wohl niemand Lust.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
popoff_1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 12:35     Titel:
  Antworten mit Zitat      
Ich habe es hinbekommen die Daten einzulesen:

Code:
function [ HistorischeDaten ] = import_raw_data(filename)
%% Import data from text file
% Script for importing data from the following text file:
%
%    filename: C:\Users\Desktop\S&P500\Mappe2.csv
%
% Auto-generated by MATLAB on 11-Jul-2020 11:43:28

%% Setup the Import Options and import the data
opts = delimitedTextImportOptions("NumVariables", 6);

% Specify range and delimiter
opts.DataLines = [2, Inf];
opts.Delimiter = ",";

% Specify column names and types
opts.VariableNames = ["Date",   "Close", "Volume"];
opts.VariableTypes = ["datetime", "double", "string"];

% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";

% Specify variable properties
opts = setvaropts(opts, "Volume", "WhitespaceRule", "preserve");
opts = setvaropts(opts, "Volume", "EmptyFieldRule", "auto");
opts = setvaropts(opts, "Date", "InputFormat", "yyyy-MM-dd");

% Import the data
HistorischeDaten = readtable("C:\Users\Desktop\S&P500\Mappe2.csv", opts);


%% Clear temporary variables
clear opts
end


Ich habe jetzt eine table mit drei Spalten:
Datum, Kurs, Volumen,

Ich möchte nun das Datum und den Kurs einer Variable zuweißen und diese dann plotten. Wie stelle ich das an?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.07.2020, 12:41     Titel:
  Antworten mit Zitat      
Hallo,

Code:
D = HistorischeDaten.Datum;
K = HistorischeDaten.Kurs;
plot(D, K)


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
popoff_1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 12:51     Titel:
  Antworten mit Zitat      
Ok, Danke ich muss die Daten allerdings noch logarithmisch darstellen
Private Nachricht senden Benutzer-Profile anzeigen
 
popoff_1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 12:52     Titel:
  Antworten mit Zitat      
Ok, Danke es funktioniert.
Ich muss die Daten allerdings noch logarithmisch darstellen, habe den Befehl loglog probiert aber da kommt der Fehler The coordinate system or ruler class does not support log axis scale.

Update: Habe es nun mit semilogy(D, K) hinbekommen Smile
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 - 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.