我有以下功能:
function F = farray (f,N)
F = {@(t) zeros(N,1)};
for i=1:N
if mod(i,2)==0
F{i}=f(t);
end
end
F = cell2mat(F);
end
f
是时间的函数句柄,即f=@(t)f(t)
。 N
指示输出数组 F
的大小。与 f
类似,F
也是时间的函数。我想用 F
填充 f
的所有其他条目,并返回 F
作为函数句柄,在替换 t
时转换为双精度数组。数组中的所有其他条目应为零。我以为我上面的内容会起作用,但事实并非如此。我哪里错了?
我会这样做:编写一个函数,为给定的
f
、t
和 N
创建所需的输出数组,然后使用匿名函数填充 f
和 的现有定义N
这样你就只有 t
的功能。
F = @(t) farray(f, t, N);
function out = farray (f, t, N)
out = zeros(N,1);
out(2:2:end) = f(t);
end