matlab:使函數的域依賴輸入的域

matlab:使函數的域依賴輸入的域

假設有函數f(i)g(j)。如何寫一個函數,其中的h(k)域由 all 組成(即,對於所有滿足 和的對,每個點都是at和at的某個函數)。例如:khk=i+jh(k)figjijk=i+j

在此輸入影像描述

對全部k=i+j。因此,的域h將是 ,k=2:25並且,例如,h(3)將等於 ,f(1)*g(2) + f(2)*g(1)因為這兩個組合都滿足k=i+j

使用循環可以很簡單地做到這一點,但我希望以匿名函數形式(即h = @(k) f(i) ... g(j))來編寫該函數。如何才能做到這一點?

答案1

ab為域 i 和 j 的已知變數。那麼您所描述的函數可能如下所示:

fun=@(k) sum(sum(transpose(f1(k-b(ismember(b,(k-a)))))*f2(b(ismember(b,(k-a))))))

其中f1f2是對應於 f(i) 和 g(j) 的匿名函數。k是一個有效的標量。

注意:使用匿名函數來完成一些重要的事情可能不被認為是好的做法。

註2:我沒有考慮 i 和 j 的非唯一域或負值的情況。

相關內容