Wie lösen && Operanden logische Skalare
Nachdem ich den code ausführen in matlab, begegne ich diesen Fehler und sind unsicher, wie es zu lösen. Wie kann ich dieses problem lösen.
Achtung:
Operanden zu || und && Betreiber muss umgewandelt werden, um logische Skalare Werte.
Jgray = double(rgb2gray(J));
% Calculate the Gradients
[dIx, dIy] = gradient(Jgray);
if max(dIx)<=103 && max(dIy)<=100
B = abs(dIy) - abs(dIx);
else
B = abs(dIx) - abs(dIy);
end
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn dIx und dIy sind Matrizen (im Gegensatz zum 1-D-Vektoren)
max(dIx)
undmax(dIy)
zurück Vektoren.&&
und||
sollte verwendet werden, um zu vergleichen, Skalare, keine Vektoren.Du wahrscheinlich möchten, geben Sie
aber ich kann nicht sicher sagen, da ich nicht weiß, was der code tun soll 🙂
Verwenden
&
und|
für Matrizen statt&&
,||
.&&
und||
sind short-circuit-Operatoren. Wenn Sie denken, Sie machen keinen Sinn für Matrizen. Zum Beispiel, der Kurzschluss oder -||
Stoppt und zurücktrue
wenn das erste argument isttrue
.Aber wie würden Sie sich verlängern, die zu einer matrix?