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

Matrix in einzelne Vektoren zerlegen

 

mindestlohn
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 10.06.23
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2023, 15:53     Titel: Matrix in einzelne Vektoren zerlegen
  Antworten mit Zitat      
Servus, ich kriege eine Zufallsmatrix ausgeworfen, welche in der ersten Spalte Auftrags-IDs darstellt und in der zweiten Spalte die jeweilige Mitarbeiter-ID, von dem Mitarbeiter der diesen Auftrag bearbeitet. Die Matrix ist immer aufsteigend nach Mitarbeiter-ID geordnet.
Eine Beispielmatrix sieht wie folgt aus:

Code:
Ind = [8,1;4,2;3,2;7,2;2,2;9,2;6,3;10,3;5,4;1,4]


Ich möchte jetzt pro Mitarbeiter einen Vektor ausgegeben bekommen, welcher seine zugeteilten Auftrags-IDs beinhaltet. In diesem Falle also:

Code:

Code:
ma2 = [4,3,7,2,9]

Code:
ma3 = [6,10]

Code:
ma4 = [5,1]


Da es sich hierbei immer um eine Zufallsmatrix handelt, ist die Anzahl der Mitarbeiter und die Anzahl der Aufträge variabel zu sehen.
Ich habe mir das so vorgestellt, dass das Programm die Matrix Zeile für Zeile durchgeht bis es einen Wechsel in der Mitarbeiter-ID merkt und dann den neuen Vektor initiiert, solange bis alle Mitarbeiter ihren eigenen Vektor haben.

Mein Gedanke war es mit einer Schleife zu lösen:

Code:
for j = 1:Ind1_sortiert(end,2);
        ma(j) = Ind1_sortiert(Ind1_sortiert(:,2) == j,1);


    end


Hier ist Ind1_sortiert die Zufallsmatrix, aber das funktioniert leider nicht.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

das Problem ist, dass du versuchst in einen Eintrag eines Vektors einen Vektor zuzuweisen.
Du kannst hier Cell Arrays verwenden:

Code:
ma = cell(Ind(end,2), 1);
for j = 1:Ind(end,2)
    ma{j} = Ind(Ind(:,2) == j,1);
end


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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 10.06.23
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2023, 15:45     Titel:
  Antworten mit Zitat      
Vielen Dank Harald, ich habe das Problem mittlerweile anders gelöst.

Das Ziel war, später mit den Aufträgen für den jeweiligen Mitarbeiter bestimmte Werte weiter auszurechnen.

Anstatt direkt alle Ausgabewerte in verschiedenen Variablen zu speichern habe ich nur pro Durchlauf den jeweiligen Wert gespeichert und in derselben Schleife die Berechnungen bereits vorgenommen. So hat sich für mich das aufsplitten auf unterschiedliche Variablen erledigt.
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.