Matlab:使用 fplot 绘制多个匿名函数

标签 matlab function anonymous

我正在尝试创建两个匿名函数并使用单个 fplot 语句绘制它们。以下代码用于绘制单个函数:

f = @(x) sin(x)

fplot(f, [-3, 3])

但是,当我包含以下内容时,它不起作用:

g = @(x) cos(x)

fplot([f, g], [-3, 3])

有人知道这里出了什么问题吗?

最佳答案

如果你真的必须这样做:

>> f = @sin;
>> g = @cos;
>> hold on
>> cellfun(@(func) fplot(func, [-3, 3]), {f, g})

这会将函数句柄 @(func) fplot(func, [-3, 3]) 应用于元胞数组中的每个元素 {f, g}。由于我还调用了 hold on,因此这两个函数都会显示在结果图中。如果您不调用 hold on,您只会看到 cos(x),因为这是最后绘制的函数。

您无法在标准 MATLAB 数组中保存函数句柄。您应该为此使用元胞数组。

如果您阅读了尝试将函数句柄放入标准数组时收到的错误消息,您会收到一条有关该怎么做的信息性消息:

>> [f, g]
Error using horzcat
Nonscalar arrays of function handles are not allowed; use cell arrays instead.

关于Matlab:使用 fplot 绘制多个匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648914/

相关文章:

javascript - 使用jquery如何调用一个函数并在函数执行完成时从上一个函数调用另一个函数

java - Spring boot 中匿名用户的 oAuth token

c# - MVC windows 身份验证在项目属性中变灰(变灰)

matlab - Fortran与Matlab的通信

MATLAB parfor 广播变量值错误

matlab - Matlab 中 NULL 和空矩阵之间的区别

c# - 设置匿名类型属性名

Matlab问题: saving the path

java - 想在每个类中使用相同的功能

sql - Postgresql 触发器功能似乎阻止插入任何记录