2012-02-07 29 views
7

için işlenen && çözmek için, bu hatayı ve çözmek için nasıl emin karşılaşıyoruz. Bu sorunu nasıl çözebilirim.Nasıl mantıksal sayısal alan

Uyarı: için

İşlenenler || ve & & işleçleri, mantıksal skaler değerlere dönüştürülebilir olmalıdır.

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 

cevap

7

(1-D vektörleri aksine) DIX ve DIY matrisleri ise, max(dIx) ve max(dIy) vektörleri dönecektir.

&& ve || skalarlar, Vektörler karşılaştırmak için kullanılmalıdır.

Sen muhtemelen

if max(dIx(:))<=103 && max(dIy(:))<=100 

yazmak istediğiniz ama kod yapmak :)

5

kullanın & ve | yerine matrisler ne gerekiyor bilmiyorum ben, kesin söyleyemem &&, ||.

&& ve || kısa devre operatörleri. Bunu düşünüyorsanız, matrisler için bir anlam ifade etmiyorlar. Örneğin, kısa devre veya - ||, ilk bağımsız değişken true olduğunda, true durur ve döndürür.
Ama bunu bir matrise nasıl genişletirsiniz?