【发布时间】:2018-12-09 17:48:08
【问题描述】:
我需要在 Matlab 中使用函数句柄来实现以下公式
其中 t 是时间向量,n 很大。此外,对于每个 k,Sk 和 fk 都是常数。任何有效的实现方式都值得赞赏。
编辑:
对于一次谐波,我可以写
y=@(t) s(1)*exp(i*2*pi*f(1)*t);
但是,我不能在 for 循环中使用它来生成 f(t)。有没有矢量方法可以做到这一点?
【问题讨论】:
-
是的,我知道这一点!这不是硬件!
-
我编辑了我的帖子以更具体。
-
“我不能在 for 循环中使用它来生成 f(t)”——为什么不呢?是硬编码的
s(1)吗?为什么不干脆做y=@(t,k) ...? -
添加它们(函数句柄)会导致错误,指出它不可行。添加它们的正确方法是 y3=@(x)(y1(x) + y2(x))。但是,随着术语数量的增加,这变得不切实际。
-
我以为你想做一个循环
r=0; for k=1:N, r=r+f(t,k); end。如果不是,那么首先使用函数句柄有什么意义?您是否正在寻找一个返回k之和的函数句柄?
标签: matlab