|
|
|
find Funktion - einzelnen Wert in großer Matrix finden |
|
| Flol |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2012, 13:56
Titel: find Funktion - einzelnen Wert in großer Matrix finden
|
 |
Hallo zusammen !
ich stehe gerade gewaltig auf dem Schlauch..
folgendes: ich habe eine Matrix (etwa 1000x1000)
mit verschiedenen werten von 0-1 (etwa 0.0975, 0.0834 usw).
nun wuerde ich gerne die Position eines in der Matrix vorhandenen Werts (Beispielsweise 0.0923) herausfinden. Oder auch die Positionen, falls es mehrere sind.
Dann dachte ich mir - ha ! die find funktion eignet sich doch dafür sicher !
habe dann folgendes probiert:
[r,c,v]=find(matrix==suchwert);
und dachte, dass row column und value dann gefüllt werden wenn etwas gefunden wird - es wird jedoch nichts in r,c,v gespeichert obwohl der wert definitiv vorkommt.
mache ich etwas falsch ?
ich bin dankbar für jeden Tipp oder auch alternative Lösungen -
eine ineinanderverschachtelte for schleife geht zwar auch, ist aber absolut nicht performant und läuft 100 Jahre (warscheinlich)
Vielen Dank
Flo
|
|
|
|
|
|
| DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 14.03.2012, 14:07
Titel:
|
 |
Bist du dir wirklich sicher, dass der Wert vorkommt oder werden evtl. nicht alle Stellen angezeigt? Der Aufruf ist richtig jedoch ist die Zahl wohl nicht in der Matrix. Lass dir mal alle Stellen ausgeben.
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 14.03.2012, 14:10
Titel:
|
 |
|
sonst im notfall nicht == nehmen sonder x>wert-dx && x<wert+dx
|
|
|
|
| Flol |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2012, 14:47
Titel: Dankesehr !
|
 |
DSP: Gute Idee, darauf bin ich noch nicht gekommen, werde das gleich checken
Winkow: Vielen Dank, das ist eine super Idee - koennte das von DSP genannte Problem lösen !
soetwas hatte ich für spaeter eh geplant !
ich schreibe sobald ich was genaueres weis, vielen dank euch beiden schonmal !
|
|
|
|
| Flol |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2012, 15:04
Titel: Ja !
|
 |
ha, genau das war das problem ! die letzten stellen wurden mir nicht angezeigt - habe schon an meinem verstand gezweifelt !
das mit dem plusminuswert ist eine super idee, geht aber innerhalb der find funktion nicht
??? Operands to the || and && operators must be convertible to logical scalar values.
leider auch wenn ich die werte in einer extra variable speichere und in die funktion einsetze ....habt ihr eine idee ? ich wuerde gerne die Stellengenauigkeit der werte behalten...
Vielen Dank für eure Hilfe !
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 14.03.2012, 15:20
Titel:
|
 |
versuch es mal mit & ich verwechsel die immer
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.03.2012, 15:31
Titel:
|
 |
Hallo,
was Winkow vorschlägt, stimmt natürlich. Üblicher (und vielleicht übersichtlicher) wäre,
durch
mit einer zu definierenden Toleranz tol zu ersetzen.
Zu &, | und &&, ||:
&&, || sind "short circuit" Operationen und vermeiden überflüssiges Testen, wenn das Ergebnis schon klar ist. Funktioniert aber nicht bei Vektoren.
&, | wertet alle Bedingungen aus und dauert daher länger, funktioniert aber auch bei Vektoren.
Grüße,
Harald
|
|
|
|
| Flol |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2012, 16:23
Titel: danke
|
 |
Ah vielen Dank Harals für die Erklärung !
So funktioniert es wunderbar, ihr seid spitze !
Vielen Dank !
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|