我试图做的是保留一个函数句柄的元胞数组,然后在循环中调用其中一个。它不起作用,在我看来,我得到的只是一个 1x1 元胞数组,而不是其中的函数句柄。
我不固定使用单元格数组,所以如果另一个集合工作对我来说很好。
这是我的代码:
func_array = {@(x) x, @(x) 2*x }
a = func_array(1) %%% a = @(x) x
a(2) %%% (error-red) Index exceeds matrix dimensions.
a(0.2) %%% (error-red) Subscript indices must either be real positive integers or
logicals.
Run Code Online (Sandbox Code Playgroud)
谢谢阿米尔
我的问题:给定一个函数句柄,matlab是否每次需要对其进行求值时解析字符串,或者只调用一次然后缓存它?
例
考虑一下巧妙的功能
function [] = foo(func)
for j=1:1e4
func(j);
end
Run Code Online (Sandbox Code Playgroud)
和脚本
func1 = @(x) 5*abs(x)^2
function foo(func1);
Run Code Online (Sandbox Code Playgroud)
在运行时,Matlab需要将其解释@(x) 5*abs(x)^2为函数.在这个例子中,它是一次还是一千次?
我的目标:用方括号(---])结束水平线.
我通常用水平线绘制
line([0,1],[2,2],'linestyle',':')
Run Code Online (Sandbox Code Playgroud)
我最后可以添加常用的标记
plot([0,1],[2,2],'o')
Run Code Online (Sandbox Code Playgroud)
但不是方括号.
有什么建议?