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

findgroups nutzen um Werte rauszuschreiben

 

Isso345

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.08.2020, 08:56     Titel: findgroups nutzen um Werte rauszuschreiben
  Antworten mit Zitat      
Hi alle,

ich habe eine 34x4x12 Matrix. In dieser will ich nur die Zeilen behalten, die einer bestimmten Bedingung in der zweiten Spalte entsprechen.

Meine Idee war:

Code:
for i = size(m,3)
[gp, id] = findgroups(m(:,2,i));
%results(:,:,i) = [m(:,2,i) gp];
 %data = [id results]
end


Hier hänge ich fest, da ich nicht verstehe, wie ich nun die Indizes nutzen kann, um nur die entsprechenden Werte beizubehalten. Hat jemand spontan eine Ahnung oder geht es eventuell sogar nocht einfacher?

Danke schonmal


Harald
Forum-Meister

Forum-Meister


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

ich würde für so etwas logische Indizierung nutzen.
Hier sehe ich das Problem, dass pro Blatt unterschiedliche Zeilen die Bedingung erfüllen könnten. Wie sollen die Ergebnisse dann ausgegeben werden?

Eine Möglichkeit wäre ein Cell Array:
Code:
R = rand(34,4,12);
for k = 1:size(R,3)
    select = R(:,2,k) < 0.7; % beispielhafte Bedingung
    S{k} = R(select,:,k);
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
 
Isso345

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.08.2020, 09:51     Titel:
  Antworten mit Zitat      
Hi Harald,

danke, das sieht super aus! Als Ausgabeformat hätte ich die Dimensionen der ursprünglichen Matrix beibehalten, also jetzt wären es 5x4x12. Das mach ich wahrscheinlich nachdem die Schleife durchgelaufen ist einfach mit cell2mat und dann reshape.

Danke und Grüße
 
Harald
Forum-Meister

Forum-Meister


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

oder
Code:

Dazu müssen aber in jedem "Blatt" dieselbe Anzahl Zeilen (hier: 5) die Bedingung erfüllen.

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.