码:
if (round(xw(1))>2) & (round(xw(2))>2) & (round(xw(1))<h-1) & (round(xw(2))<w-1)
W0 = img(round(xw(1))-2:round(xw(1))+2,round(xw(2))-2:round(xw(2))+2);
else
NA=1;
break
endif
Run Code Online (Sandbox Code Playgroud)
xw是一个列向量,包含一个点的坐标.
h并且w是图像的尺寸.
我在OCTAVE中使用这些代码行
但是当我运行包含这些行的函数时,我会收到警告
warning: Matlab-style short-circuit operation performed for operator &
是否尽管使用&,八度音程正在进行&&操作?
我了解到如果我使用&&那么取决于第一个语句是True或者False,下一个语句被评估.
那么,当我收到此警告时,这是发生了什么事吗?那么这个问题的解决方案是什么?
我想检查是否所有的陈述都是True,而不仅仅是第一个.
您可以使用&&操作员安全地避免警告.
警告来自Matlab&在此上下文中对操作员进行特殊处理的事实:
当你使用元素方式&和| 在if或while循环表达式的上下文中的运算符(并且仅在该上下文中),它们使用短路来计算表达式.
出于兼容性原因,Octave会检测此行为并模拟Matlab的功能.请注意,&&在Matlab中使用它也是完全安全的,因为无论如何都是隐含使用的.
| 归档时间: |
|
| 查看次数: |
7122 次 |
| 最近记录: |