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

Tabelle mit Überschriften sortieren

 

Milena
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.09.17
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 14.09.2017, 16:15     Titel: Tabelle mit Überschriften sortieren
  Antworten mit Zitat      
Hallo,

mein Programm soll eine Tabelle aus Excel sortieren. Das klappt auch wunderbar mit dem sortrows-Befehl. Nun hat die Tabelle allerdings Überschriften in der ersten Spalte, die sich zusammen mit den Zeilen verschieben sollen, also den jeweiligen Zeilen zugeordnet bleiben sollen.

Hat jemand eine Idee, wie ich das hinbekommen kann? Vielleicht suche ich auch unter einem falschen Stichwort, aber ich konnte bisher nichts dazu finden.

So ist die Ausgangstabelle:
C1 1 2 0
C2 2 4 0
C3 3 2 1

Und so soll es gerne aussehen:
C3 3 2 1
C2 2 4 0
C1 1 2 0

Danke schonmal (:
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

genau das sollte ja mit sortrows gehen. Was versuchst du, und welche Probleme treten dabei auf?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Milena
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.09.17
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 14.09.2017, 21:18     Titel:
  Antworten mit Zitat      
Die Zeilen werden sortiert, aber meine Benennung: "C1", "C2" und "C3" geht dabei verloren.

Ich erhalte als Ergebnis dann nur:
3 2 1
2 4 0
1 2 0

VG Milena
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Wie liegen die Daten vor? Als Cell Array, als Table, als ganz was anderes? Das kann man so leider nicht erahnen.
Welchen Aufruf verwendest du?
Am besten ist es, wenn du den Code zur Verfügung stellst sowie die Daten als .mat-Datei.

Mir ist im übrigen auch nicht klar, nach was du eigentlich sortieren möchtest.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Milena
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.09.17
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 14.09.2017, 22:00     Titel:
  Antworten mit Zitat      
Code:
A=xlsread('Beispiel.xlsx')
B=sortrows(A, -1)
xlswrite('Beispiel.xlsx', B, 'Tabelle1', 'B6')


Das ist mein Code. Wie man das mit der .mat-Datei macht, weiß ich leider nicht und meine xlsx Datei lässt sich nicht anhängen -.- Die Einträge habe ich einfach in den Zellen, also A1="C1", B1=1, usw. Versteht man, was ich meine? Sorry, ich weiß gerade nicht, wie ich das sonst machen soll :/

Ich sortiere nach der 1. Spalte absteigend Wink

Tut mir leid, dass ich mich so vage ausgedrückt habe :/
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

mit deinem Code wird ja gar kein Text in MATLAB importiert. Wie soll denn etwas mit sortiert werden, was gar nicht eingelesen wurde?
Wenn du die Daten mit readtable einliest und dann sortrows anwendest, sollte das klappen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Milena
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.09.17
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 16.09.2017, 13:46     Titel:
  Antworten mit Zitat      
Super, das klappt zumindest schonmal so, dass es in Matlab übernommen wird.

Wenn ich jetzt aber das ganze wieder zurück in Excel haben möchte, dann gibt er mir für:

Code:
writetable('Beispiel.xlsx', B, 'Tabelle1', 'B6')


Die Fehlermeldung: "Error using writetable (line 117)
Input must be a row vector of characters."

Woran mag das jetzt noch liegen?

Vielen Dank für deine ausgiebige Hilfe, ich bin leider noch nicht so Matlab affin.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.09.2017, 18:59     Titel:
  Antworten mit Zitat      
Hallo Milena,
Zitat:
Code:
writetable('Beispiel.xlsx', B, 'Tabelle1', 'B6')

Ein Blick in die Dokumentation hilft: Der erste Input von writetable ist die Tabelle, der zweite der Filename, nicht umgekehrt. Dann brauchst Du noch die Keywords 'Sheet' und 'Range'. Klicke mal auf den Namen der Funktion: writetable oder:
Code:

für Beispiele.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Milena
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.09.17
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 18.09.2017, 20:01     Titel:
  Antworten mit Zitat      
Super, vielen Dank (: Ihr habt mir sehr geholfen!
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.