![matlab:使函数的定义域依赖于输入的定义域](https://linux22.com/image/1510031/matlab%EF%BC%9A%E4%BD%BF%E5%87%BD%E6%95%B0%E7%9A%84%E5%AE%9A%E4%B9%89%E5%9F%9F%E4%BE%9D%E8%B5%96%E4%BA%8E%E8%BE%93%E5%85%A5%E7%9A%84%E5%AE%9A%E4%B9%89%E5%9F%9F.png)
答案1
设a
和b
为域 i 和 j 的已知变量。则您描述的函数可能如下所示:
fun=@(k) sum(sum(transpose(f1(k-b(ismember(b,(k-a)))))*f2(b(ismember(b,(k-a))))))
其中f1
和f2
是对应于 f(i) 和 g(j) 的匿名函数。k
是有效标量。
注意:对于一些非平凡的事情使用匿名函数可能不被认为是一种好的做法。
注2:我没有考虑过i和j的域不唯一或为负值的情况。
设a
和b
为域 i 和 j 的已知变量。则您描述的函数可能如下所示:
fun=@(k) sum(sum(transpose(f1(k-b(ismember(b,(k-a)))))*f2(b(ismember(b,(k-a))))))
其中f1
和f2
是对应于 f(i) 和 g(j) 的匿名函数。k
是有效标量。
注意:对于一些非平凡的事情使用匿名函数可能不被认为是一种好的做法。
注2:我没有考虑过i和j的域不唯一或为负值的情况。