Matlab:使用fplot绘制多个匿名函数
我试图创建两个匿名函数,并使用一个fplot语句来绘制它们。以下代码用于绘制单个函数:Matlab:使用fplot绘制多个匿名函数,matlab,function,anonymous,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) fpl
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})
这将函数handle@func fplotfunc,[-3,3]应用于单元格数组{f,g}中的每个元素。因为我还调用了hold on,所以这两个函数都将显示在结果图中。如果不调用hold-on,只会看到cosx,因为这是最后一个绘制的函数
不能在标准MATLAB数组中保留函数句柄。您应该使用单元格数组来实现这一点
如果您阅读了试图将函数句柄放入标准数组时收到的错误消息,您将收到一条关于如何操作的信息性消息:
>> [f, g]
Error using horzcat
Nonscalar arrays of function handles are not allowed; use cell arrays instead.
如果您确实必须这样做:
>> f = @sin;
>> g = @cos;
>> hold on
>> cellfun(@(func) fplot(func, [-3, 3]), {f, g})
这将函数handle@func fplotfunc,[-3,3]应用于单元格数组{f,g}中的每个元素。因为我还调用了hold on,所以这两个函数都将显示在结果图中。如果不调用hold-on,只会看到cosx,因为这是最后一个绘制的函数
不能在标准MATLAB数组中保留函数句柄。您应该使用单元格数组来实现这一点
如果您阅读了试图将函数句柄放入标准数组时收到的错误消息,您将收到一条关于如何操作的信息性消息:
>> [f, g]
Error using horzcat
Nonscalar arrays of function handles are not allowed; use cell arrays instead.
为什么不在你感兴趣的域上绘制每个函数,而不是引入不必要的间接层次?为什么不在你感兴趣的域上绘制每个函数,而不是引入不必要的间接层次?很棒的黑客!当我想在一个脚本文件中编写一个多行本地函数而不制作一个单独的函数文件时,这非常有用。很棒的黑客!当我想在脚本文件中编写多行本地函数而不制作单独的函数文件时,这非常有用。