提问人:Jonathan Frutschy 提问时间:10/25/2023 更新时间:10/25/2023 访问量:56
使用内部函数句柄创建使用交替值填充的外部 N x 1 函数句柄
Create an External N by 1 Function Handle Populated with Alternating Values Using an Internal Function Handle
问:
我有以下内部函数句柄:
f = @(t)f_0.*sin(alpha.*t).*cos(beta.*t);
我想创建一个名为 F 的外部 N x 1 函数句柄,该句柄将 f 置于 F 中的交替位置,如下所示:
F = @t[f(t); 0; f(t); 0; f(t); 0; … ]
我想用以下函数来做到这一点:
function F = farray (f,N)
r = 2:2:N
F = @(t) [f(t); zeros(N-r, 1)];
end
这不会产生所需的填充方法。这可以在没有 for 循环或其他 MATLAB 函数(如 toeplitz())的情况下完成吗?
答:
1赞
rahnema1
10/25/2023
#1
创建一个包含 和 在交替位置的 by 向量,然后将其乘以 :N
1
0
1
f(t)
function F = farray (f,N)
z = zeros(N, 1);
z(1:2:end) = 1;
F = @(t) f(t) .* z;
end
创建数组的另一种方法:
function out = place_ft_at_alternating_positions(ft, N)
out = zeros(N, 1);
out(1:2:end) = ft;
end
function F = farray (f, N)
F = @(t) place_ft_at_alternating_positions(f(t), N);
end
评论
0赞
Jonathan Frutschy
10/25/2023
在这里使用占位符函数很有意义。
2赞
Wolfie
10/25/2023
#2
你可以用它来创建,假设是偶数F
N
F = @(t) repmat( [f(t); 0], N/2, 1 );
评论
F
它不是 N 乘以 1 任何东西,它是您定义的匿名函数的函数句柄,或者如果您使用了正确的语法,则会是。什么是 和 ?你想要的结果是什么。f_0
alpha
beta
F = zeros(N,1); F(1:2:N)=f(t);