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 finden mittels eines Vektors

 

matlabversteheichnicht
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 24.05.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2021, 16:25     Titel: Index finden mittels eines Vektors
  Antworten mit Zitat      
Hallo zusammen
ich habe folgendes Problem
durch findpeaks habe ich den folgenden Vektor erhalten
locs=[161192,425592,689991,954390,1218390,1482790,1746788,2011189,2275588,2539988]
Nun habe ich eine Tabelle namens "Zeit",welche die exakten Werten in "locs" enthält und viele andere Werte und ich möchte die indizen von diesen Werten aus "locs" wissen, am besten wieder in einem Vektor. Ich habe mir folgendes überlegt:
Code:
%
for j = locs
    a=find(Zeit==j)
end    
 

aber matlab spuckt mir "Matrix dimension must agree" raus. Könnt ihr mir vielleicht sagen, wie ich mein Output aus der for Funktion wieder in einen Vektor umwandle?
Ich bedanke mich im Voraus
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: 24.05.2021, 16:53     Titel:
  Antworten mit Zitat      
Hallo,

der Code ist auch nicht sinnvoll, weil du a in jeder Iteration überschreibst.
Ich verstehe auch bei der Beschreibung nicht wirklich, was du willst.

Wenn ich raten müsste, willst du (ohne Schleife)
Code:
a = Zeit(locs);


Falls das nicht weiter hilft, ist eine entscheidende Frage: was sind Datentyp und Dimensionen der beteiligten Variablen?

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 24.05.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2021, 17:30     Titel:
  Antworten mit Zitat      
Hi
danke für deine schnelle Rückmeldung
also im Workspace wird locs als 10x1 double und Zeit als 7061x1 double angezeigt. In Zeit sind die Werte aus locs enthalten. Und ich will die zugehörige Indizen zu den Werten wissen, am besten in Vektorform also wie locs.
ja ich sehe was du meinst, meine Grundgedanke war, dass für jeden Wert in locs durch find den zugehörigen Index ausgegeben wird. Aber ich weiss nicht wie man die ausgegebene Indizen in eine Liste oder Vektor speichert. Und wodurch kommt die Fehlermeldung zustande? Nach meiner Logik müsste a dann einfach das Index von dem letzten Wert in locs sein oder?

Viele Grüße
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: 24.05.2021, 19:45     Titel:
  Antworten mit Zitat      
Hallo,

dann
Code:
[~, a] = ismember(locs, Zeit)


Aber ich weiss nicht wie man die ausgegebene Indizen in eine Liste oder Vektor speichert.
Code:
for k = 1:numel(locs)
a(k) = find(Zeit == locs(k));
end

oder vermutlich auch
Code:
for j = locs'
    a(j)=find(Zeit==j)
end  


Zitat:
Und wodurch kommt die Fehlermeldung zustande?

Hast du mal den Debugger verwendet? Dann dürftest du sehen, dass j in der ersten Iteration der gesamte Vektor ist. Üblicherweise wird for mit Zeilenvektoren verwendet. Ansonsten wird über die Spalten iteriert.

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
 
matlabversteheichnichtoff

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.05.2021, 09:53     Titel:
  Antworten mit Zitat      
Hi

danke für deinen Vorschlag, es hat super geklappt.

lg
 
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.