Octave和MATLAB中匿名函数的奇怪行为

Octave和MATLAB中匿名函数的奇怪行为,matlab,octave,Matlab,Octave,嗨,我很好奇为什么我会在MATLAB和Octave中得到以下行为 octave:7> pdf = @(x) (0<=x && x<1).* (x) + (1<=x && x <=2).* (2-x); octave:8> octave:8> t = 0:0.1:1; octave:9> octave:9> y = pdf(t) y = 0 0 0 0 0 0 0 0

嗨,我很好奇为什么我会在MATLAB和Octave中得到以下行为

octave:7> pdf = @(x) (0<=x && x<1).* (x) + (1<=x && x <=2).* (2-x);  
octave:8> 
octave:8> t = 0:0.1:1;
octave:9> 
octave:9> y = pdf(t)
y =

   0   0   0   0   0   0   0   0   0   0   0

octave:10> 
然后我得到正确的结果

 Columns 1 through 19:

 0.00000   0.10000   0.20000   0.30000   0.40000   0.50000   0.60000   0.70000   0.80000   0.90000   1.00000   0.90000   0.80000   0.70000   0.60000   0.50000   0.40000   0.30000   0.20000

 Columns 20 and 21:

   0.10000   0.00000

&&
| |
是短路运算符,用于标量。替换为
&
|
。我在Matlab(R2011B)中执行上述(矢量化)代码时出错


&&
替换为
&
后,它似乎可以正常工作。

&
|
是短路运算符,用于标量。替换为
&
|
。我在Matlab(R2011B)中执行上述(矢量化)代码时出错

&&
替换为
&
后,它似乎可以正常工作

 Columns 1 through 19:

 0.00000   0.10000   0.20000   0.30000   0.40000   0.50000   0.60000   0.70000   0.80000   0.90000   1.00000   0.90000   0.80000   0.70000   0.60000   0.50000   0.40000   0.30000   0.20000

 Columns 20 and 21:

   0.10000   0.00000