Eine Größe soll nur einmal einen bestimmten werde erhalten
Einspritzvorgang
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 20.11.2012, 11:19
Titel: Eine Größe soll nur einmal einen bestimmten werde erhalten
In der folgenden Schleife vergleiche ich zwei Matrizen (mB1 und mB2), welche eine Liste von Kreisen auf zwei kurz hintereinander aufgenommenen Fotos beschreiben. Dabei sind Spalte eins der Radius und Spalte 2 und 3 die Koordinaten. Ich will die Kreise auf Bild eins eindeutig den Kreisen auf Bild zwei zuordnen.
damit es eindeutig ist, darf die größe indexB (welche mir sagt in welcher zeile der zugehörige kreis auf bild 2 ist) nur einmal einen bestimmten Wert erhalten. Zum beispiel hat sie in meinem Beispiel zweimal die Größe 17. Wie kann ich das verhindern?
Code:
centersB2_gefunden = zeros(size(mB1,1),2);
centersB1_gefunden = zeros(size(mB1,1),2);
for A = 1:size(mB1)
diffGefundenB = bsxfun(@minus, mB1(A,:), mB2(:,:));
DistB = zeros(size(diffGefundenB,1),1);
ich habe mir dein Problem nicht genau verstanden, aber deiner Beschreibung zu Folge hilft dir eventuell der Befehl UNIQUE weiter. Er kann dir aus einem Eingansvektor einen Ausgangsvektorerzeugen, der alle vorkommenden Werte nur noch einmal enthält, er entfernt also im prinzip doppelte Werte.
Grüße,
Mad
Einspritzvorgang
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 20.11.2012, 11:51
Titel:
Es dreht sich leider nicht um ein Array, sondern um ein einzelnen Wert, der sich in der Schleife jedes mal ändert. Ich möchte das der Wert indexB nur jeweils einmal einen bestimmten Wert animmt. ER soll zum Bsp. nicht mehrmals gleich 4 sein....
Ist dir der Wert, welcher nicht zweimal vorkommen darf vorher bekannt?
Dann könntest du ja im Prinzip zu deiner if-Abfrage eine Bedingung anhängen mit der abfrage ob es diesen Wert schon gab. Dazu müsstest du natürlich noch innerhalb der schleife eine Tabelle anlegen, die bei jedem durchlauf den aktuellen Wert von indexB eingetragen bekommt.
In deiner If-Abfrage kannst du dann die Tabelle auf diesen Wert überprüfen. Könnte so funktionieren. Kann aber sein das ich dein Problem immernoch missverstehe
Grüße,
Mad
Einspritzvorgang
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 21.11.2012, 10:58
Titel:
Nein, nein, du verstehst sie sehr gut. Dein Vorschlag klingt sehr gut. VIELEN DANK! werde mich sofort daran setzen, ihn mal auszuprobieren.
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
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.