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

splitapply Anwendung

 

Emmolu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2020, 14:33     Titel: splitapply Anwendung
  Antworten mit Zitat      
Liebe Gemeinde

ich habe eine Frage zur Funktionsweise von "splitapply"

Code:
for i= 1:size(timepoints,3)

[gp, val1, val2, val3] = findgroups(timepoints(:,1,i), timepoints(:,3,i), timepoints(:,2,i));

results(:,:,i) = splitapply(@(timepoints) {sortrows(timepoints(:,4,i),1)}, timepoints, gp);

end


timepoints ist eine 700x4x12 Matrix.

Der Code läuft fehlerfrei durch, jedoch habe ich einige Fragen zur Funktionsweise.

Bei Results bekomme ich ein 35x1x12 cell raus. Jeder Eintrag ist ein 20 x 1 double.
Das Resultat ist zwar von mir gewünscht, jedoch nicht in der Form, dass jeder Eintrag ein 20 x 1 double ist. Mit dem Code beabsichtige ich, die Matrix timepoints in jeder ihrer 12 Dimensionen anhand der ersten und dann der zweiten Spalte zu sortieren sodass eine Matrix mit den Dimensionen 700 x 1 x 12 ist (kein double, sowie bei results). Ich bin mir nicht sicher, ob die Matrix richtig sortiert wird, denn wenn ich cell2mat auf Results anwende bekomme ich nur die 4te Spalte von timepoints angezeigt. Wie schaffe ich es, dass alle Spalten der ursprünglichen Matrix beibehalten werden?

Danke für eure Hilfe, Emmolu


Harald
Forum-Meister

Forum-Meister


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

ich habe etwas Probleme zu folgen.

Zitat:
sodass eine Matrix mit den Dimensionen 700 x 1 x 12 ist

Geht es um results?

Zitat:
(kein double, sowie bei results)

Das verstehe ich überhaupt nicht.

Zitat:
denn wenn ich cell2mat auf Results anwende bekomme ich nur die 4te Spalte von timepoints angezeigt.

cell2mat verändert nicht die Werte an sich sondern nur deren Anordnung. Dass nur die 4. Spalte angezeigt wird, liegt an der 4 in sortrows(timepoints(:, 4, i), 1) .

Zitat:
anhand der ersten und dann der zweiten Spalte zu sortieren

Dann musst du bei sortrows 1:2 statt 1 angeben.

Warum vertauscht du bei findgroups 2 und 3? Verwirrt das nicht?

Ein Problem ist hier meines Erachtens, dass du zu viel auf einmal versuchst. Vorschlag:
1. Schauen, dass sortrows auf einer Matrix wie gewünscht arbeitet.
2. Den Algorithmus auf ein Blatt von timepoints anwenden.
3. Die for-Schleife.

Wenn du in jedem Schritt überprüfst, ob sich alles richtig verhält, ist das viel einfacher als bei einem relativ komplexen Code am Ende festzustellen: oh, das macht nicht das, was es soll.

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
.





 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.