Apa perbedaan antara operator logika &
dan &&
di MATLAB?
matlab
logical-operators
short-circuiting
Fantomas
sumber
sumber
&
dapat beroperasi pada array tetapi&&
hanya dapat beroperasi pada skalar.d != 0 && 1/d
vsd !=0 & 1/d
- jaminan pertama tidak ada pembagian dengan nol, yang kedua tidak.&
melakukan hubungan pendek jika dalam sebuahif
pernyataan. Dan&&
mengambil input skalar. @ Jawaban Loren di bawah ini benar.&&
dan selalu||
ambil masukan skalar dan korsleting.|
dan&
mengambil input array dan hubung singkat hanya di pernyataan if / while. Untuk tugas, yang terakhir tidak melakukan hubungan arus pendek.Lihat halaman dokumen ini untuk informasi lebih lanjut.
sumber
&
dan|
pernyataan if / while? Tampaknya tidak demikian halnya di R2012b dan R2014a.Seperti yang telah disebutkan oleh orang lain,
&
adalah operator AND yang logis dan&&
merupakan operator AND hubung singkat . Mereka berbeda dalam bagaimana operan dievaluasi serta apakah beroperasi pada array atau skalar:&
(Operator AND) dan|
(operator OR) dapat beroperasi pada array dengan cara yang bijaksana.&&
dan||
merupakan versi hubung singkat yang operan kedua dievaluasi hanya jika hasilnya tidak sepenuhnya ditentukan oleh operan pertama. Ini hanya dapat beroperasi pada skalar , bukan array.sumber
Keduanya adalah operasi AND yang logis. && adalah operator "arus pendek". Dari dokumen MATLAB:
Lihat selengkapnya di sini .
sumber
Mirip dengan bahasa lain,
&
adalah operator bitwise logis, sedangkan&&
operasi logis.Misalnya (maafkan sintaks saya).
Jika..
..atau..
Sebab
&&
, operan kanan hanya dihitung jika operan kiri benar, dan hasilnya adalah nilai boolean tunggal.x = (b ~= 0) && (a/b > 18.5)
Harapan itu jelas.
sumber
bitand
adalah logika AND operator bitwise di MATLAB.&& dan || adalah operator sirkuit pendek yang beroperasi dengan skalar. & dan | beroperasi pada array, dan gunakan hubungan arus pendek hanya dalam konteks
if
atauwhile
ekspresi loop.sumber
Aturan praktis yang baik saat menyusun argumen untuk digunakan dalam pernyataan bersyarat (IF, WHILE, dll.) Adalah selalu menggunakan && / || formulir, kecuali ada alasan yang sangat bagus untuk tidak melakukannya. Ada dua alasan ...
Melakukan ini, daripada mengandalkan resolusi vektor MATLAB di & dan |, mengarah ke kode yang sedikit lebih bertele-tele, tetapi BANYAK lebih aman dan lebih mudah untuk dipelihara.
sumber
r((r<2)&(r<2))
".