Ich bekomme einen Fehler für undefinierte Funktion oder Variable in der if-Anweisung (letzte Zeile vor dem letzten Ende), wenn ich die Gleichheiten bereits zugewiesen habe.Warum bekomme ich undefinierte Variable in einer if-Anweisung?
l_min = nan(372,1);
A = randn(372,3);
B= randn(372,3);
for t=1:372
min_ct = min(A(t,:));
if min_ct == A(t,1);
l = B(t,1);
if min_ct == A(t,2);
l = B(t,2);
elseif min_ct == A(t,3);
l = B(t,3);
end
end
l_min(t) = l;
end
Konnte jemand mit diesem helfen?
Sie definieren nicht 'L' überall, wenn Ihre erste logische Aussage falsch ist (' wenn min_ct A (t == 1) '), so 'l_min (t) = l;' kann nicht ausgewertet werden. In Zukunft ist es viel hilfreicher, wenn Sie die Fehlermeldung * actual * angeben und nicht die Paraphrasierung, da sie die genaue Zeile angibt, in der sich das Problem befindet. – excaza
Es ist unmöglich, eines der Kriterien nicht zu erfüllen, da der Mindestwert von A (1, :) zum Beispiel einigen der Elemente von A (1, :) entsprechen muss !! Alles, was ich bekommen möchte, ist die Position des Minimalwerts für jede Iteration von t. Zum Beispiel, wenn A (1, :) = [5 3 2], ist der minimale Wert offensichtlich, dass es 2 ist, was das dritte Element ist. Ich möchte, dass der Code das dritte Element eines Vektors B (1, :) an der ersten Position des Vektors l_min anordnet. – user7137145
Ich stelle mir vor, das zweite "wenn" soll eigentlich ein "Anderes" sein und eines der "Enden" ist entfernt. –