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

csvwrite

 

ATU

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2018, 08:43     Titel: csvwrite
  Antworten mit Zitat      
Hallo Zusammen,

Ergebnisse, die automatisch in Excel gespeichert sind, möchte ich nun auf csv übertragen.


In Excel sind 2 Spalten mit Überschriften vorhanden (Datum und Wert)

folgende Code führt leider zu Fehler:

[~,~,erg] = xlsread('Pro.xlsx','H1');

csvwrite('Ergebnis.csv',erg);

Fehler: 'The input cell array cannot be converted to a matrix.'

Für Tipps bin ich sehr dankbar!

Grüße
ATU


Harald
Forum-Meister

Forum-Meister


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

ohne die Excel-Datei vor sich zu haben ist es schwierig einen Rat zu geben. Ich würde aber sagen, dass man sinnvollerweise das erste Argument von xlsread nutzen sollte.

Code:
num = xlsread('Pro.xlsx','H1');
csvwrite('Ergebnis.csv',num);


Dabei gehen die Überschriften verloren. Wenn du diese behalten willst, würde ich zu readtable/writetable raten.

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
 
DerElch
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 18.07.18
Wohnort: Wien
Version: 2017b
     Beitrag Verfasst am: 27.07.2018, 09:48     Titel:
  Antworten mit Zitat      
Nicht die Einschränkung bei csvwrite vergessen. Das kann nur numerische Daten speichern. Sollte xlsread daher das Datum nicht als datenum haben, geht csvwrite auch nicht.

[EDITED, Jan, Bitte nich die gesamte vorhergehende Nachricht zitieren - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
 
ATU

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2018, 09:53     Titel: xlswrite
  Antworten mit Zitat      
Hallo Harald

vielen dank für die prompte Antwort. Allerdings wird nur die zweite Spalte übernommen. Datumsfeld wird nicht berücksichtigt.
in Excel stehen die Daten wie folgt:

Time(SpalteA) Var1(SpalteB)
01.06.2018 01:30 24994,81865
01.06.2018 01:45 52072,53886
01.06.2018 02:00 62487,04663
01.06.2018 02:15 62487,04663
01.06.2018 02:30 62487,04663
01.06.2018 02:45 42838,18054
01.06.2018 03:00 58793,96985
01.06.2018 03:15 58793,96985
01.06.2018 03:30 58793,96985
01.06.2018 03:45 58793,96985
01.06.2018 04:00 41155,77889
01.06.2018 04:15 58793,96985
01.06.2018 04:30 58793,96985

Danke!
Grüße
ATU
 
DerElch
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 18.07.18
Wohnort: Wien
Version: 2017b
     Beitrag Verfasst am: 27.07.2018, 10:13     Titel:
  Antworten mit Zitat      
Hallo ATU,

nach einem kurzen Test mit deinen Daten bekomme ich mit xlsread folgendes Ergebnis:
Code:

 [~, ~, erg] = xlsread('goMatlab.xlsx', 'Tabelle1')

erg =

  14×2 cell array

    {'Time(SpalteA)'      }    {'Var1(SpalteB) '}
    {'01.06.2018 01:30:00'}    {[         24995]}
    {'01.06.2018 01:45:00'}    {[         52073]}
    {'01.06.2018 02:00:00'}    {[         62487]}
    {'01.06.2018 02:15:00'}    {[         62487]}
    {'01.06.2018 02:30:00'}    {[         62487]}
    {'01.06.2018 02:45:00'}    {[         42838]}
    {'01.06.2018 03:00:00'}    {[         58794]}
    {'01.06.2018 03:15:00'}    {[         58794]}
    {'01.06.2018 03:30:00'}    {[         58794]}
    {'01.06.2018 03:45:00'}    {[         58794]}
    {'01.06.2018 04:00:00'}    {[         41156]}
    {'01.06.2018 04:15:00'}    {[         58794]}
    {'01.06.2018 04:30:00'}    {[         58794]}
 


Mit readtable folgenden Code:
Code:

Terg = readtable('goMatlab.xlsx')
Warning: Variable names were modified to make them valid MATLAB identifiers. The original names are saved in the VariableDescriptions property.

Terg =

  13×2 table

       Time_SpalteA_       Var1_SpalteB__
    ___________________    ______________

    01.06.2018 01:30:00    24995        
    01.06.2018 01:45:00    52073        
    01.06.2018 02:00:00    62487        
    01.06.2018 02:15:00    62487        
    01.06.2018 02:30:00    62487        
    01.06.2018 02:45:00    42838        
    01.06.2018 03:00:00    58794        
    01.06.2018 03:15:00    58794        
    01.06.2018 03:30:00    58794        
    01.06.2018 03:45:00    58794        
    01.06.2018 04:00:00    41156        
    01.06.2018 04:15:00    58794        
    01.06.2018 04:30:00    58794

Terg.Var1_SpalteB__(6)

ans =

     4.283818054000000e+04
 
Private Nachricht senden Benutzer-Profile anzeigen
 
ATU

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2018, 10:57     Titel: csvwrite
  Antworten mit Zitat      
Hallo DerElch,

vielen dank für deine Antwort. Leider verstehe ich nicht ganz was du mir damit zeigen willst. Ich schätze, du meinst dass das Datumsfeld nicht in num-Format vorliegt, richtig?
Gibt es aber dennoch eine Lösung, wie ich eine csv datei erstellen kann, undzwar mit den beiden spalten?

PS: ich bin ein MATLAB-Anfänger

Danke und Grüße
ATU
 
Harald
Forum-Meister

Forum-Meister


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

csvwrite schreibt laut Doku eine Matrix, also nur numerische Daten.
Ansonsten wie gesagt readtable / writetable. Wenn es dabei Probleme gibt, poste bitte deinen Code und nenne die konkreten Schwierigkeiten.

Excel-Dateien bitte immer als Datei anhängen (ggf. gezippt), da die hinterlegte Formatierung das Verhalten des Codes beeinflussen kann.

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
 
DerElch
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 18.07.18
Wohnort: Wien
Version: 2017b
     Beitrag Verfasst am: 27.07.2018, 12:06     Titel:
  Antworten mit Zitat      
Hallo ATU,

ja das wollte ich damit sagen.

Wenn du csv mit allen Spalten schreiben willst, hat Harald die Frage schon beantwortet.
readtable -> writetable

Bitte dafür selbst die Doku anschauen.
Private Nachricht senden Benutzer-Profile anzeigen
 
ATU

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2018, 13:03     Titel: csvwrite
  Antworten mit Zitat      
Hat super geklappt!

Vielen, vielen Dank an euch beiden!

ein schönes Wochenende wünsche ich euch!
 
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.