|
|
| Fred90 |

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 17.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 11:17
Titel: Vektor in einer Schleife
|
 |
Hallo,
ich habe schon wieder eine Frage
und zwar wie ist es möglich einen Vektor in einen loop einzubauen?
Ich habe z.B eine Matrix und über dies Matrix geht mein loop drüber und setzt die Werte der matrix zu 1 bzw 0, wenn sie dem vorher definierten wert entsprechen bzw nicht entsprechen.
mit einem vorher definierten festen wert klappt alles wunderbar, doch wenn ich für diesen wert einen vektor einsetze, so dass ich am ende mehrere binäre matrizen bekomme, die jeweils einen anderen schwellwert besitzen funktioniert es nicht!
Vielen Dank schon mal für eure hilfreichen Tipps!
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 11:21
Titel:
|
 |
Hallo,
poste doch bitte einen Codeausschnitt und erkläre genau, was passieren soll und was passiert.
Grüße,
Harald
|
|
|
|
| Fred90 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 17.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 11:30
Titel:
|
 |
Ok,
also hier ist es so wie es funktioniert:
th= 0.5
for r= 1:size(imgSseg_sd,1);
for c = 1:size(imgSseg_sd,2);
if (imgSseg_sd(r,c) < th);
imgSseg_sd(r,c)= 0;
elseif (imgSseg_sd(r,c) >=th);
imgSseg_sd(r,c)= 1;
end
end
Doch nun würde ich gerne th durch einen vektor ersetzen, doch dann kommt immer die Fehlermeldung, dass th ein nonscalares produkt ist!
Danke
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 11:46
Titel:
|
 |
Hallo,
das momentane kannst du umsetzen mit
Ich sehe nicht, wo die Fehlermeldung herkommen soll, da keine Multiplikation durchgeführt wird. Bitte Fehlermeldung nicht übersetzen, sondern kopieren.
Was möchtest du denn machen? Möchtest du für die einzelnen Zeilen einen unterschiedlichen Threshold angeben oder für die Spalten?
Grüße,
Harald
|
|
|
|
| Fred90 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 17.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 11:59
Titel:
|
 |
Hallo,
momentan hab ich es so umgesetzt und es funktioniert auch so mit einem skalar produkt.
doch so
kommt diese Fehlermeldung:
| Zitat: |
??? Error using ==> lt
Matrix dimensions must agree.
Error in ==> testROC at 44
imgSseg_sd(imgSseg_sd<th)=0;
|
Ich möchte am Schluss verschiedene Matrizen mit unterschiedlichen Thresholds haben.
Danke!
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 12:06
Titel:
|
 |
|
einen vektor mit nem anderen zu vergleichen der auch noch ne andere länge hat geht nicht.. was soll da überhaubt rauskommen
|
|
|
|
| Fred90 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 17.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 12:11
Titel:
|
 |
eben, deshalb hab ich es auch mit loops versucht!
wie schon gesagt binäre matrizen mit jeweils einem andern threshold
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 12:23
Titel:
|
 |
Hallo,
damit man dir helfen kann müsstest du diese Frage beantworten:
| Zitat: |
| Was möchtest du denn machen? Möchtest du für die einzelnen Zeilen einen unterschiedlichen Threshold angeben oder für die Spalten? |
... oder für Blöcke? Vielleicht hilft auch ein kleines Beispiel, an dem man sieht, welche Resultate du haben willst.
Grüße,
Harald
|
|
|
|
| Fred90 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 17.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 12:46
Titel:
|
 |
sorry, dass ich es nicht so präzise beschreiben kann jetzt versuch ich es mal mit einem Beispiel
also:
M=
[ 22 18 7;
4 16 2;
25 3 23]
jetzt will ich z.B mehrere thresholds anwenden, für das Bsp mal nur 2.
für th=15;
M=
[1 1 0;
0 1 0;
1 0 1]
für th= 20
M= [1 0 0;
0 0 0;
1 0 1]
ich kann das Problem zwar lösen, indem ich immer verschiedene loops anwenden, aber ich würde es gerne alles in einen verpacken, so dass er mir für verschiedene thresholds unterschiedliche Matrizen auswirft.
Ich hoffe mit dem Beispiel ist auch die Frage zu den Zeilen und Spalten beantwortet....also die thresholds sollen auf die gesamte matrix angewandt werden.
Vielen DAnk für die Bemühungen!
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 12:52
Titel:
|
 |
Hallo,
z.B. so:
Grüße,
Harald
Zuletzt bearbeitet von Harald am 21.01.2012, 13:18, insgesamt einmal bearbeitet
|
|
|
|
| Fred90 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 17.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 13:15
Titel:
|
 |
mhm...bei mir kommt der Error
| Zitat: |
??? Error using ==> gt
Matrix dimensions must agree.
Error in ==> mehrThres at 8
N(:,:,I) = M > th;
|
und für
N kommen nur Matrizen mit lauter Nullern raus??
Aber sonst siehts eigentlich ganz gut aus
Danke
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 13:19
Titel:
|
 |
Hallo,
kleine Änderung imCode, s.o. [ (I) eingefügt ]. Jetzt müsste es passen.
Grüße,
Harald
|
|
|
|
| Fred90 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 17.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 13:24
Titel:
|
 |
SUPER!!! es klappt
Vielen Dank!!
|
|
|
|
| Fred90 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 17.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 16:25
Titel:
|
 |
leider funktioniert es doch leider nicht so
denn bei einem th= 7 kommt das raus:
N =
1 1 1
0 1 0
1 0 1
aber raus kommen müsst das
N=
0 0 1
0 1 0
1 0 1
woran kann das liegen?
Danke!
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.01.2012, 16:31
Titel:
|
 |
Hallo,
ist das bezogen auf obiges M? Wenn nicht, bitte die Daten zur Verfügung stellen.
Links oben in diesem M stehen doch Einträge > 7, warum soll da dann keine 1 stehen? Rechts oben kommt bei mir weder eine 1 raus noch würde ich eine erwarten.
Grüße,
Harald
|
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
|
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.
|
|