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

Index-Problem

 

kurzer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2016, 23:31     Titel: Index-Problem
  Antworten mit Zitat      
Hey Leute,

ich hab mir über den find-Befehl die Indizes aus einem Vektor ausgeben lassen, auf welchen die gegebene Bedingung zutrifft.

Die einzelnen Indizes sind ja nun als Werte in dem Vektor c gespeichert.

Nun möchte ich einen neuen Vektor erstellen, welcher mir nur die Werte ausgibt, an den Indizes, welche in Vektor c als Wert gespeichert sind.

Das Beispiel erklärt es vielleicht besser.

Code:


duration=[12,52,93,44,59,26,57,78,99,10];
threshold=50;

[r,c]=find(duration>=threshold); % c entspricht also [2, 3, 5, 7, 8, 9]

duration_new=duration(???);      % duration_new sollte jetzt [52,  93, 59, 57, 78, 99] sein

 


Was muss an die Stelle der ??? ?
Ich steh leider auf dem Schlauch...

Viele Grüße
kurzer


gs
Forum-Century

Forum-Century


Beiträge: 172
Anmeldedatum: 17.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.05.2016, 07:21     Titel:
  Antworten mit Zitat      
wenn du nur einen Zeilen oder Spaltenvektor hast, dann brauchst du dir nicht einzeln die Zeilen- und Spaltenpaare ausgeben lassen, dann kannst du das auch einfach in eine Variable schreiben.

um deinen Code mal zu vervollständigen:
Code:

duration_new=duration(c)
 


grüße gs
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: 25.05.2016, 11:17     Titel: Re: Index-Problem
  Antworten mit Zitat      
Hallo kurzer,

"Logical indexing" ist effizienter als find :

Code:
duration=[12,52,93,44,59,26,57,78,99,10];
threshold=50;
duration_new = duration(duration >= threshold);

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
kurzer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.05.2016, 16:27     Titel:
  Antworten mit Zitat      
Hey, ich weiß nicht was da gestern mit mir los war...
Das war ja mehr als simpel...nur funktioniert hatte es nicht ganz,lag aber an einer anderen Stelle.
Danke für die schnelle antwort.

Und Danke an Jan für die Variante über den Logical Index.
 
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.