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

Spalte einen Namen zuweisen

 

Matlab_Newcomer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2012, 14:36     Titel: Spalte einen Namen zuweisen
  Antworten mit Zitat      
Hallo,

ich wollte fragen, ob es möglich ist einer Spalte in einer Matrix eine Bezeichnung zuzuweisen?

Danke für die Hilfe.

Gruß
Matlab_Newcomer


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.07.2012, 14:53     Titel:
  Antworten mit Zitat      
ich erkenne den sinn darin nicht wirklich. kannst mal ein beispiel geben was du meinst? meinst du sowas wie stucts?
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab_Newcomer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2012, 15:52     Titel:
  Antworten mit Zitat      
Ich will sagen können, dass die Erste Spalte der Kennzahl xy entspricht und die Zweite Spalte der Kennzahl yz. usw. Dasselbe will ich mit den Zeilen machen können.

Das macht mir das Speichern von Werten in Matrizen und die Ausgabe von Text leichter.

Es ist wahrscheinlich nicht die beste Variante, aber ich würde trotzdem gern wissen wie es geht.

Gruß
Matlab_Newcomer
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.07.2012, 16:29     Titel:
  Antworten mit Zitat      
ich kenn keinen weg der selben variablen verschiedene namen zu geben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Seer
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 09.07.2012, 17:04     Titel:
  Antworten mit Zitat      
Du könntest ein cell-Array verwenden, die erste Zeile des Arrays mit den Spaltennamen befüllen und die erste Spalte mit den Zeilennamen. Deine Werte schreibst du dann in die einzelnen Zellen. Das sollte funktionieren, ist aber nicht schön und stört beim Rechnen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2012, 18:56     Titel:
  Antworten mit Zitat      
Hallo,

da gibt es viele Möglichkeiten.
Sei A deine Matrix, dann ist der Zugriff auf die Spalten mit Namen ganz einfach:
Code:
xy=1;
yz=2;
B=A(xy,:);
C=A(yz,:);

oder
Code:
xy=@(S)S(1,:);
yz=@(S)S(2,:);
B=xy(A);
C=yz(A);


Gruß
Sirius
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab_Newcomer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2012, 20:43     Titel:
  Antworten mit Zitat      
Hallo

Vielen Dank für eure Ausführungen, ich weiß jedoch nicht ob ich mich richtig ausgedrückt habe bzw. ob ich euren Code richtig verstehe.

Hier mal ein Beispiel:

Hier ist meine Matrix:
Code:
A = [1 2 3 ;4 5 6 ;7 8 9]

A =

     1     2     3
     4     5     6
     7     8     9


Ich möchte jetzt der Zeile mit den Werten 1 2 3 einen Namen zuweisen, den ich am besten als Variable speichern kann um ihn später wieder aufrufen zu können.

Zeile 1 2 3 = Prinzip 1 usw.

Genauso will ich das für die anderen Zeilen machen und auch für die spalten.

Ist es jetzt klarer?

Gruß
Matlab_Newcomer
 
Harald
Forum-Meister

Forum-Meister


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

schau dir mal die Dataset Arrays aus der Statistics Toolbox an. Die von dir gewünschten Zeilen-/Spaltenbeschriftungen sind dort die Observation Names bzw. Variable Names.

Code:
B = dataset(A(:,1), A(:,2), A(:,3), 'Varnames', {'Spalte1', 'Spalte2', 'Spalte3'}, 'Obsnames', {'Zeile1','Zeile2','Zeile3'})


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Seer
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 10.07.2012, 09:06     Titel:
  Antworten mit Zitat      
Wenn sich deine Matrix A während der Laufzeit nicht ändert, kannst du auch folgendes machen:

Code:
Zeilenname_1 = A(1,:)
Zeilenname_2 = A(2,:)
Zeilenname_3 = A(3,:)

Spaltenname_1 = A(:,1)
Spaltenname_2 = A(:,2)
Spaltenname_3 = A(:,3)


Falls sich A während des Programmablaufs ändern kann musst du eine Konstruktion wie die von Sirius3 vorgeschlagene verwenden.

Aber generell: Die Stärke von Matlab sind Matrizen, es ist nicht geschickt das aufbrechen zu wollen indem du Zeilen und Spalten eigene Namen gibst. Du könntest deine Methoden natürlich auch direkt als Vektoren definieren, oder du schreibst einen Kommentar zu deiner Matrix, wo drinsteht was Zeilen und Spalten bedeuten.
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab_Newcomer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2012, 15:05     Titel:
  Antworten mit Zitat      
Hallo,

meinst du mit der Veränderung der Matrix, das sich die Größe nicht ändern darf oder das sich die Werte nicht ändern dürfen?

Gruß
Matlab_Newcomer
 
Seer
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 10.07.2012, 15:42     Titel:
  Antworten mit Zitat      
Sowohl als auch. Wenn sich die Werte ändern musst du die Vektoren aktualisieren, die du aus deiner Matrix rausgezogen hast.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.07.2012, 16:02     Titel:
  Antworten mit Zitat      
Hallo,

da der Fragesteller an diesem Vorschlag Gefallen zu finden scheint, möchte ich 2 Dinge nochmal hervorheben:

Zitat:
Die Stärke von Matlab sind Matrizen, es ist nicht geschickt das aufbrechen zu wollen indem du Zeilen und Spalten eigene Namen gibst

Richtig. In vielen Threads wird explizit darauf hingewiesen, dass das Arbeiten mit vielen Variablen in dieser Form vermieden werden soll.

Zitat:
Wenn sich die Werte ändern musst du die Vektoren aktualisieren, die du aus deiner Matrix rausgezogen hast.

Wenn sich also ein Eintrag einer Matrix ändern, muss man jedes Mal die entsprechende Zeilenvariable und die entsprechende Spaltenvariable anpassen. Das ist ein deutlicher Mehraufwand und macht die Programmierung unübersichtlich.

Wenn die Statistics Toolbox zur Verfügung steht, kann ich nur nochmal auf die Dataset Arrays verweisen, die für so etwas meines Erachtens ideal sind.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2012, 00:10     Titel:
  Antworten mit Zitat      
Hallo,

ich habe mich jetzt dagegen entschieden, meine Variante durchsetzen zu wollen. Ich habe jetzt eine einfache andere Lösung für mich gefunden, die aber auch nicht den Zeilen/Spalten Namen zuweißt. Ich versuche jetzt die Stärken von Matlab zu nutzen und nicht irgendwelche Lücken füllen zu wollen.
Vielen Dank trotzdem für eure nützlichen Denkanstöße und Tipps.

Gruß
Matlab_Newcomer
 
Matlab_Newcomer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2012, 00:11     Titel:
  Antworten mit Zitat      
Hallo,

ich habe mich jetzt dagegen entschieden, meine Variante durchsetzen zu wollen. Ich habe jetzt eine einfache andere Lösung für mich gefunden, die aber auch nicht den Zeilen/Spalten Namen zuweißt. Ich versuche jetzt die Stärken von Matlab zu nutzen und nicht irgendwelche Lücken füllen zu wollen.
Vielen Dank trotzdem für eure nützlichen Denkanstöße und Tipps.

Gruß
Matlab_Newcomer
 
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 - 2025 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.