最近在Python中工作,我想從一門課程中移植一段簡短的Matlab代碼,但是說實話我無法確定如果有可能以同樣的方式進行,如果是的話,該怎麼做。Python中的「嵌套」匿名函數/函數句柄
這裏的重要組成部分,我正在與Python中掙扎如下:
nk = @(x)1
for l=1:3 % calculate basis
nk = @(x)(nk(x).*(x-1));
end
如何代碼工作在Matlab:
nk = @(x)1
創建了一個函數處理nk(x)
,可以通過調用例如, xi=[1,2,3,4]
,但截至目前它只會返回1,因爲它不依賴於變量x
。
在for循環,nk(x)
乘以(x-1)
每次迭代(這裏x
被認爲是一種「象徵性」的變量,或者叫什麼呢,類似於你如何定義lambda函數),以及它到底應該顯示爲nk = (x-1)*(x-1)*(x-1)
。
它仍然是一個函數,我可以稱爲nk(x)
,其中x
是一個數組,其中我希望它具有任何值。
即使你已經給出了例子,我不明白函數的期望行爲。你可以更具體一些,因爲我喜歡很多其他人不會知道matlab –
當然。有關Matlab中匿名函數的一般概述,您可以查看https://se.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html#f4-70285。 對於我粘貼的代碼,目標是獲得插值多項式作爲函數句柄,以便可以在不同的時間間隔內對其進行評估,而無需對每組數據進行全部計算。假設我想插入一些我知道P(x)= 0.25 *(x-3)^ 2 + 0.31 *(x-7.21)^ 3的數據,上面的代碼恰好給出了這個P(x)它作爲(x,P(x))(類似於numpy.polyval)。通常我不會先驗地知道這個P(x)。 – ritualmagick
在你的Python上工作......到目前爲止你嘗試過了什麼?有什麼問題? – chapelo