Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Robotik mit MATLAB

Studierende:
weitere Angebote

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Table in Cell umwandeln

 

schema
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 06.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2021, 21:07     Titel: Table in Cell umwandeln
  Antworten mit Zitat      
Hi,

ich würde gerne aus einem Table mit 81 Spalten bestimmte Spalten (21 Spalten) in einem Cell-Array speichern.
Hier habe ich mit table2cell mein Glück versucht aber habe einen 5668x21 cell erhalten.
Ich würde aber jedoch gerne einen 1x21 cell haben indem jeweils die 5668 Zeilen sind.
Ich habe auch schon versucht direkt einen cell zu erstellen, wie folgt:
m_mb = {mb(:,1), mb(:,2), mb(:,4), mb(:,6), mb(:,Cool, mb(:,10), ... };
Hier erhalte ich zwar einen 1x21 cell jedoch sind die Spalten als Table definiert und wenn ich da table2array anwende kriege ich einen Error mit "Input argument must be a table."
Versucht habe ich auch direkt eine Spalte mit table2array umzuwandeln aber kriege komischerweise hier einen cell raus.
Ich hoffe mein Anliegen ist verständlich.
Vielen Dank im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 23.378
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.09.2021, 22:20     Titel:
  Antworten mit Zitat      
Hallo,

mit geschweiften Klammern indizieren:
Code:
m_mb = {mb{:,1}, mb{:,2}, ... };


Mir stellt sich nun auch die Frage, warum man das in ein solches Cell Array umwandeln wollen würde.

Falls die Spalten alle numerisch sind, sollte das auch kompakter gehen, indem du alle benötigten Spalten mit { } extrahierst und dann mat2cell anwendest. Beispiel:
Code:
T = array2table(rand(20, 10));
result = mat2cell(T{:, 1:5}, 20, ones(1,5))


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
 
schema
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 06.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2021, 22:33     Titel:
  Antworten mit Zitat      
Bei meiner CSV-Datei besteht die erste Spalte aus Datum und Uhrzeiten, die restlichen Spalten sind unterschiedliche Messungen, da ich nur bestimmte brauche, dachte ich mir alles in einer cell wäre übersichtlicher für weitere Berechnungen.
Abgesehen von der ersten Spalte mit Datum und Uhrzeit, sagt mir Matlab auch, dass meine zweite Spalte ein cell ist obwohl dort nur Drehzahlen angegeben sind. Ich bräuchte dann eigentlich einen Befehl mit dem ich trotz Datum und cell den table in einen array umwandeln kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 23.378
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.09.2021, 22:38     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
da ich nur bestimmte brauche, dachte ich mir alles in einer cell wäre übersichtlicher für weitere Berechnungen.

Dann reduziere doch die Spaltenanzahl, bleib aber bei einem Table? Dann hast du den Vorteil, dass du weiter die Spaltenüberschriften behältst.

Zitat:
Ich bräuchte dann eigentlich einen Befehl mit dem ich trotz Datum und cell den table in einen array umwandeln kann.

Welche Art von Array? Double geht nicht, weil ein Datum dabei ist. Datum geht nicht, weil Double dabei sind - und Cell Array willst du nicht.

Hast du denn mal den ersten Vorschlag versucht? (mit geschweiften Klammern indizieren)

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
 
schema
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 06.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2021, 22:50     Titel:
  Antworten mit Zitat      
Ja habe ich, aber wieder das Problem, dass mir außer date-Spalte alle anderen wieder als cell ausgegeben werden, also cell in einer cell (siehe Foto).

Ich glaub es gibt ein Fehler beim einlesen der Datei (habe ich mich readtable geamcht) weil davor mit anderen Dateien hatte ich das Problem nicht, bekam ich normal double raus wenn ich die umgewandelt habe.

Screenshot (11).png
 Beschreibung:

Download
 Dateiname:  Screenshot (11).png
 Dateigröße:  40.03 KB
 Heruntergeladen:  6 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 23.378
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.09.2021, 08:21     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich glaub es gibt ein Fehler beim einlesen der Datei (habe ich mich readtable geamcht) weil davor mit anderen Dateien hatte ich das Problem nicht

Dann stelle doch bitte so eine Beispieldatei zur Verfügung und wie du sie einliest.

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
 
schema
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 06.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2021, 10:03     Titel:
  Antworten mit Zitat      
Meine Excel-Tabelle sieht wie folgt aus.

Einlesen tu ich es mit m_mb=readtable("file_name.csv");

Screenshot (12).png
 Beschreibung:

Download
 Dateiname:  Screenshot (12).png
 Dateigröße:  121.05 KB
 Heruntergeladen:  3 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 23.378
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.09.2021, 17:24     Titel:
  Antworten mit Zitat      
Hallo,

bitte hänge die Datei an, nicht einen Screenshot davon. Ich habe keine Ambitionen, die Daten abzutippen. ;) Falls die Endung nicht unterstützt wird, zippen.

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
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.