【发布时间】:2020-07-04 04:56:10
【问题描述】:
我在尝试定义一个将向量作为参数的常量函数时遇到了这种存在问题:
我想定义一个类似的函数:
>f=@(x) 0.0; % a constant function (zero or any other constant value).
>xx=linspace(0,10,10); % ten values where I want to evaluate the function
当我运行它时,我得到:
>> f(xx)
ans = 0
我真的期待一个零向量。 (我看不到如何将矢量化功能合并到常量函数中)
有没有人能解决这个简单的问题? 提前致谢!
【问题讨论】:
-
我真的期待一个零向量
f=@(x) 0.0定义了一个简单地输出0的函数。f = @(x) zeros(size(x))是你想要的吗? -
或
@(x)x*0也可以。如果你不在你的函数中使用x,那么它的输出就独立于它的输入。您是否期望依次为输入的每个元素调用该函数? Octave 不是这样工作的。 -
好的,@LuisMendo 在那个 cse 中,它只适用于零值常量函数,但不适用于 f=@(x) 3.0,对吗?我希望输出为 3... 我认为它可以设置为:f=@(x) a*ones(1,size(x));
-
@CrisLuengo @(x)x*0 对于另一个常数 0 也不起作用。“您是否希望依次为输入的每个元素调用该函数?”。我想这就是我想要的!。
-
所以,也许
f = @(x) repmat(a,size(x))是您所追求的。我真的没有得到你想要的,对不起