我在MATLAB中有一个表示函数值的向量。我正在密谋这些,但想突出显示特定范围内的那些。特别是我对函数值接近但小于'v'的所有点感兴趣。即对于值'x',我想突出显示这一点
abs( x - v ) < epsilon && x < v
如果我想选择所有点'x',那么
abs( x - v) < epsilon
我必须工作的是(我不确定这是否是良好的编码实践)
inds = (abs( xs - v ) < epsilon ) ;
然后在轴a
中绘制xs与我的ysplot( a, ys(inds), xs(inds), 'ks ' ) ;
如果我尝试
,这种方法就不再有用了inds = (abs( xs - v) < epsilon && xs < v ) ;
在这种情况下,无论我如何安排括号,我都会收到以下错误:
'操作数到||和&amp;&amp;运算符必须可转换为逻辑标量值。'
我想我有两个问题
1。)如果我尝试使用逻辑&amp;&amp ;?,为什么这种方法不起作用?据我所知,我使用的表达式可以转换为逻辑标量值
2。)这是在MATLAB中选择点子集的好方法吗?
谢谢, Keeran
答案 0 :(得分:3)
这是因为&&
仅适用于标量值。你有向量,而不是标量,所以你必须使用&
代替:
inds = ( abs(xs-v) < epsilon & xs < v );
除此之外,这是选择点子集的正确方法。
供参考,请注意&
也适用于标量。 &&
的原因是标量可能更快(请参阅doc
)。