使用函数句柄填充数组的所有其他元素 MATLAB

问题描述 投票:0回答:1

我有以下功能:

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
时转换为双精度数组。数组中的所有其他条目应为零。我以为我上面的内容会起作用,但事实并非如此。我哪里错了?

arrays function matlab cell-array function-handle
1个回答
0
投票

我会这样做:编写一个函数,为给定的

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
© www.soinside.com 2019 - 2024. All rights reserved.