MATLAB

2016-11-24 8 views
0

上の文はあなたが私のミスは、次のコードの上にあるものを私に教えてくださいできればロングと詳細なAND、OR条件:MATLAB

if ((i>156-9 && i<156+9) && (j>406-9 && j<406+9)) || ((i>684-11 && i<684+11) && (j>274-11 && j<274+11)) || ((i>1066-15 && i<1066+15) && (j>67-15 && j<67+15)) || ((i>1559-15 && i<1559+15) && (j>867-15 && j<867+15)) || ((i>1082-18 && i<1082+18) && (j>740-18 && j<740+18)) 
    plot(j, i, 'r+', 'MarkerSize', 7, 'LineWidth', 5); 
end 

は私が取得するために従うif文を使用したいです表現これらの条件のうちの1つが満たされている場合:事前に

((i>156-9 && i<156+9) && (j>406-9 && j<406+9)) OR 
((i>684-11 && i<684+11) && (j>274-11 && j<274+11)) OR 
((i>1066-15 && i<1066+15) && (j>67-15 && j<67+15)) OR 
((i>1559-15 && i<1559+15) && (j>867-15 && j<867+15)) OR 
((i>1082-18 && i<1082+18) && (j>740-18 && j<740+18)) 

おかげで... よろしく。

+1

エラーメッセージが何か、または実際の出力と予想される出力が何であるか教えていただけない場合、間違いは何か分かりません。あなたの場合、私はプロット(i、j)命令について考える。 iとjは配列でなければならないので、単一の数より大きくても小さくても構いません。 – marcoresk

+0

@marcoreskあなたは確かに配列をスカラ値と比較できますが、結果として論理配列を取得します。しかし、論理配列の入力に '&&'または '||'を使用しようとすると、エラーが発生します。 – nekomatic

答えて

0

私はあなたの表現をそのままの状態で使用しており、これをこの小さなコードに使用しました。

clc; A=[]; 
for i=1:2000 
    for j=1:2000 
     if ((i>156-9 && i<156+9) && (j>406-9 && j<406+9)) || ((i>684-11 && i<684+11) && (j>274-11 && j<274+11)) || ((i>1066-15 && i<1066+15) && (j>67-15 && j<67+15)) || ((i>1559-15 && i<1559+15) && (j>867-15 && j<867+15)) || ((i>1082-18 && i<1082+18) && (j>740-18 && j<740+18)) 
      A = [A, num2str(i),' ',num2str(j), char(10)]; 
     end 
    end 
end 
display(A); 

私のために働きます。

+0

あなたの努力のために多くのthx –