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

Problem mit einer for-Schleife

 

Sebi0491

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2014, 23:49     Titel: Problem mit einer for-Schleife
  Antworten mit Zitat      
Hallo zusammen,

ich habe einen Satz Messdaten "y", habe aus diesen ein paar Werte gelöscht "z" (neue Indizes) und möchte mir nun wieder die Indizes aus den Originalmessdaten ausgeben lassen.

y=[1 6 5 7 8 3 5 6 3 4 9 2 10 3]';
z =[7 8 6 9 10]';

Hier mein Versuch:

for i=1:z
A(i)=find(y==z(i));
end

Das funktioniert leider nicht, denn wenn die for-Schleife den Ausdruck A(3) durchläuft, gibt es zwei Werte als Lösung (also ein Vektor --> [2;8]) und damit gibt mir Matlab einen Fehler aus (Ihr könnt es ja mal ausprobieren).
Ich möchte nun, dass mir immer der größere von beiden Werten ausgeben wird, also [8].

Die Lösung sollte am Schluss heißen: A=[4,5,8,11,13]

Kann mir da jemand helfen?

Vielen Dank schon mal!

Gruß Sebi


Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 11.11.2014, 04:31     Titel:
  Antworten mit Zitat      
Hallo,

Aus der Hilfe zu find:
Zitat:
I = find(X,k,direction) specifies the search direction as either 'first' or 'last'.
For example, find(X,k,'last') finds the last k nonzero elements in X.

In deinem Fall also
Code:
y=[1 6 5 7 8 3 5 6 3 4 9 2 10 3]';
z =[7 8 6 9 10]';

A = zeros(size(z));  % pre-allocation
for i=1:size(z,1)  % Index-Grenze korrigiert
    A(i)=find(y==z(i), 1, 'last');
end


Als Hinweis: Bei
y=[1 6 5 7 8 3 5 6 3 4 9 2 10 3 6]';
wird für z=6 als Index 15 statt 8 ausgegeben.

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebi0491

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2014, 21:11     Titel:
  Antworten mit Zitat      
Super. Genau das habe ich gesucht Wink

Vielen Dank!!!
 
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.