|
|
|
index eines elements in matrix; find funktioniert nicht!?!? |
|
| kamaswami |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 17.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2009, 21:50
Titel: index eines elements in matrix; find funktioniert nicht!?!?
|
 |
| |
 |
|
hallo,
ich habe eine matrix und möchte mit einer for schleife jedes element auf eine eigenschaft überprufen. wenn es die eigenschaft erfüllt (größer ist als ein bestimmer referenzwert) soll dieses element selbst und alle weiteren elemente bis zum ende der jeweiligen spalte mit einer einfachen operation verändert werden (zb zu jedem element 5 dazuzählen).
das 'zielelement' alleine zu ändern ist kein problem aber wie bringe ich maltab dazu von diesem punkt aus auch gleich alle weiteren darunterliegenden werte mitzubearbeiten.
ich wollte dazu zunächst den index (row/col - werte) des zielelements bestimmen und von da ausgehend alle weiteren adressieren. das seltsame ist aber, dass der find-command bei meinen werten nicht funktioniert
als beweis möchte ich dazu ein beispiel geben:
sollte hier nicht 10 rausgegeben werden? oder wenn man es mit [I J] macht I=5 und J=2???
ich wäre jedenfalls sehr dankbar wenn mir jemand auf die sprünge helfen könnte, um entweder das subproblem (das indexfinden) zu lösen oder überhaupt einen anderen weg für mein problem zu finden.
vielen dank,
kamaswami
|
|
|
|
|
|
| MatLabNooB |

Forum-Guru
|
 |
Beiträge: 262
|
 |
|
 |
Anmeldedatum: 27.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2009, 22:07
Titel:
|
 |
bin mir nicht sicher, aber der grund könnte sein, dass bedingt durchs short format zwar 0.2340 angezeigt wird es aber in wirklichkeit sowas wie 0.23401 ist und deshalb dein find scheitert?
wenn du nun dein Index hast, selektierst du den rest der Spalte, indem du so:
|
|
|
|
| kamaswami |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 17.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2009, 22:29
Titel:
|
 |
hi,
danke, genau das war der plan. aber ich bekomme den index nicht. auch nicht, wenn man die randomisierten werte auf zb 2 dezimalstellen rundet.
fällt jemandem noch etwas ein??
|
|
|
|
| derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 17.12.2009, 01:12
Titel:
|
 |
Hi,
MatlabNoob hatte schon recht, es liegt an Rundungsfehlern, man sollte in Matlab doubles nie mit == vergleichen. Du brauchst ja sowieso nur den größer als vergleich, und der funktioniert ja bei deinem Beispiel.
Mit dem runden klappts so:
Viele Grüße,
der Oli
|
|
|
|
| kingkamali |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2009, 01:39
Titel:
|
 |
such doch mal so nach 0.2340:
find ( t>0.2339 & t<0.2341);
und glaube das klappt so mit deiner idee:
hoffe hilft dir weiter...
|
|
|
|
| kamaswami |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 17.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2009, 18:53
Titel:
|
 |
hallo,
vielen dank für eure antworten. ich habe das problem umschifft, eure vorschläge haben mir sehr geholfen.
ciao.
|
|
|
|
| Madprofessor1 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 11:09
Titel: find Befehl auf double anwenden
|
 |
hi an alle,
Ich habe ein sehr ähnliches Problem, Ich habe eine Matrix mit double Einträgen und würde gerne bestimmte Einträge mit dem FIND Befehl finden.
Ich habe schon ausprobiert die Daten mit dem Roundbefehl zu bearbeiten.
Dabei gibt es folgendes Problem. Je nachdem wie ich den ROUND Befehl ausführe bekomme ich andere Ergebnisse. Für a=100,1000,10.000 habe ich das ganze mal durchgespielt. Das ist irgendwie schon komisch.
Hatte jemand schonmal dasselbe Problem?
LG, Andy
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 13:02
Titel:
|
 |
Hallo,
soll heißen, du findest nicht die Einträge, die du zu finden erwartest?
Probier mal
Grüße,
Harald
|
|
|
|
|
|
|
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.
|
|