我有一個愚蠢的問題,我期待採取一些數據點,通過它適合的多項式函數,然後區分該函數來獲得特定功能的最佳點。因此,我在網上做了一些閱讀,並使用了Matlab的「樣條」功能。下面是一些代碼:在Matlab使用插值返回功能
a = [50; 100; 150;200;250;300;350]
b = [56;23;22;18;14;15;21]
y = spline(a,b)
但是,當我使用diff(y)
我得到以下錯誤:
??? Error using ==> diff
Function 'diff' is not supported for class 'struct'.
我不是太熟悉Matlab的,所以任何幫助真的理解
我相信你應該使用[polyfit(http://www.mathworks.com/help/matlab/ref/polyfit.html)函數首先安裝一個多項式,然後你會得到一個象徵性的功能。之後使用[符號分化](http://www.mathworks.com/help/symbolic/diff.html)獲得功能最佳點。 –
除Parag的評論外:'spline'不返回一個函數,而是一個包含樣條信息(例如係數等)的'struct'。這就是爲什麼'diff'無法處理它的原因。 – Schorsch
當然,因爲在Matlab的多項式表示爲係數的向量,可以通過PD = P獲得N階多項式p的衍生物(1:結束-1)。* [N-1:-1:1 ] –