【发布时间】:2016-01-28 03:38:01
【问题描述】:
我注意到 matlab 内置函数可以处理标量或向量参数。示例:
sin(pi/2)
ans =
1
sin([0:pi/5:pi])
ans =
0 0.5878 0.9511 0.9511 0.5878 0.0000
如果我自己写函数,比如分段周期函数:
function v = foo(t)
t = mod( t, 2 ) ;
if ( t < 0.1 )
v = 0 ;
elseif ( t < 0.2 )
v = 10 * t - 1 ;
else
v = 1 ;
end
我可以将其称为单个值:
[foo(0.1) foo(0.15) foo(0.2)]
ans =
0 0.5000 1.0000
但是,如果函数的输入是向量,它不会像内置函数那样自动向量化:
foo([0.1:0.05:0.2])
ans =
1
是否有可以在函数定义中使用的语法来指示如果提供了向量,则应该生成向量?或者像 sin, cos, ... 这样的内置函数会检查输入的类型,如果输入是向量,是否会产生相同的结果?
【问题讨论】:
标签: matlab