2011-05-13 51 views
2

如果我要從大量數據(大約400個圖表,每個500,000個值)創建插值樣條曲線,那麼我怎樣才能快速高效地從另一個軟件訪問這些樣條曲線的座標?如何從另一個程序訪問MATLAB(插補)樣條曲線?

最初我打算對數據進行迴歸並在我的delphi程序中使用所得到的公式,但結果是比我想象的更大的痛苦。

我目前正在使用Matlab,但如果需要的話,我可以使用其他軟件。

編輯:這可能是相關的,這些數據代表了其他一些數據(我已經在數據庫中)的empirical cumulative distribution

下面是這些圖表之一的樣子。 example

重點在於訪問速度。我打算使用這些數據來運行財務數據模擬。

回答

1

MATLAB有一個將樣條轉換爲分段多項式的命令。然後可以用unmkpp提取每個多項式的中斷和係數,並在另一個程序中對它們進行評估。

0

最快的是最有可能是查表您保存到磁盤和您加載在你的模擬代碼中使用(雖然:?爲什麼不能運行在Matlab仿真)

您可以評估花對於使用FNVALx的精細粒度列表,並使用最接近的值x來查找cdf。

1

如果你也熟悉C,你可以使用Matlab編碼器或類似的東西來獲得一箇中間庫來連接你的Delphi程序和MATLAB。雖然接口Delphi和C代碼雖然很乏味,但當然可能(或者在Delphi 7的時代已經回來了)。或者你甚至可以在MATLAB中編寫算法,使用Matlab編碼器將代碼轉換爲C,並在Delphi中調用生成的C庫。

也許有點矯枉過正,但您可以將數據存儲在MATLAB的數據庫(例如MySQL)中,並從Delphi中檢索它們。

最後:是德爾福真正的約束?你也可以使用MATLAB來進行模擬,因爲你可能有相同的工具(甚至更多)可用於MATLAB而不是Delphi。之後,您可以分享結果,我認爲這不是速度的關鍵。

1

我最初的猜測是,在MATLAB中使用memmapfile創建一個內存映射文件,用你的數據填入一個查找表,然後在你的Delphi代碼中打開內存映射文件並讀取數據從那個文件。