andi_1
Forum-Fortgeschrittener
Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
Verfasst am : 27.07.2010, 10:53
Titel : if-abfrage
Hallo Leute,
habe hier eine Matrix (M) mit 3x2. in spalte1 steht x in spalte2 steht y. mittels
R = pdist(M,'euclid')
bekomme ich eine matrix (R) mit 1x3, in der die abstände der punkte stehen.
Die Abstände in R sollen jeweils <1 sein. es sollen dann nur die punkte (x- und y-werte) ausgegeben werden, zwischen denen der abstand <1 ist.
wie kann ich das programmieren?
Gruß und Dank
andi_1
Themenstarter
Forum-Fortgeschrittener
Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
Verfasst am : 27.07.2010, 12:18
Titel :
R ist die Matrix mit den Abständen
Q ist die Matrix mit x und y werten
Q3ist die Ergebnismatrix
Code:
if ( ( R( 1 ,1 ) <1 ) )
Q3( 1 ,:) = Q( 1 ,1 :2 )
Q3( 2 ,:) = Q( 2 ,1 :2 )
if ( ( R( 1 ,2 ) <1 ) )
Q3( 1 ,:) = Q( 1 ,1 :2 )
Q3( 3 ,:) = Q( 3 ,1 :2 )
if ( ( R( 1 ,3 ) <1 ) )
Q3( 2 ,:) = Q( 2 ,1 :2 )
Q3( 3 ,:) = Q( 3 ,1 :2 )
end
wenn ich diesen code durchlaufen lasse passiert nichts.
kann mir wer sagen, was daran falsch ist?
Caidence
Forum-Anfänger
Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
Verfasst am : 27.07.2010, 12:23
Titel :
Ich würde es vielleicht mal mit einem index probieren.
Z.B.
andi_1
Themenstarter
Forum-Fortgeschrittener
Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
Verfasst am : 27.07.2010, 13:48
Titel :
hallo caidance,
was bringt mir hier die nutzung des index, bzw wie bau ich das ein?
funktioniert das nicht mit if oder ist meine syntax nur falsch?
gruß
Fourier
Forum-Guru
Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
Verfasst am : 27.07.2010, 14:01
Titel :
Hallo,
hier ein beispiel, hoffe es ist das was du suchst.
gruss
_________________ Ein schlechter General ist besser als zwei gute.
andi_1
Themenstarter
Forum-Fortgeschrittener
Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
Verfasst am : 27.07.2010, 14:19
Titel :
hallo fourier,
bei deinem beispiel gibt es keine punkte, die einen abstand <1 zueinander haben, trotzdem bekomme ich eine ergebnismatrix.
probiere mal:
abstand = pdist(A,'euclid');
hier werden dir alle möglichen abstände zwischen deinen punkten aufgezeigt.
kannst du mir vielleicht sagen was an meiner if-abfrage im zweiten thread falsch sein könnte.
Gruß
_Fourier
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 27.07.2010, 14:24
Titel : aa
ahh jetzt verstehe ich was du meinst.
ich dachte der abstand zwischen x und y soll kleiner 1 sein.
wusste nicht dass x,y koordinaten entsprechen.
pdist kann ich gerade nicht testen (toolbox fehlt).
gruss
andi_1
Themenstarter
Forum-Fortgeschrittener
Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
Verfasst am : 27.07.2010, 14:36
Titel :
hab nun jede einzelne if-abfrage mit "end" versehen. so funktionierts!
Code:
if ( R( 1 ,1 ) <1 ) ,
Q3( 1 ,: ) = Q( 1 ,1 :3 )
Q3( 2 ,: ) = Q( 2 ,1 :3 ) ,
end
if ( R( 1 ,2 ) <1 ) ,
Q3( 1 ,: ) = Q( 1 ,1 :3 )
Q3( 3 ,: ) = Q( 3 ,1 :3 ) ,
end
if ( R( 1 ,3 ) <1 )
Q3( 2 ,: ) = Q( 2 ,1 :3 )
Q3( 3 ,: ) = Q( 3 ,1 :3 ) ,
end
Jan S
Moderator
Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
Verfasst am : 27.07.2010, 14:37
Titel : Re: if-abfrage
Hallo Andi,
Das geht natürlich auch mit IF-Abfragen, aber "Mat"lab kann viel effizienter mit "Mat"ritzen rechnen, daher der Name.
Die Methode, die für "Limited" verwendet wurde, heißt übrigens "Logical indexing" und ist auch für Arrays mit Millionen von Elementen sehr effizient.
Gruß, Jan[/code]
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.