2016-11-14 21 views

回答

-3

因此可以說你有2個文件在同一個目錄下。 a.mb.m在腳本b.m,如果你作爲一個行代碼一切都在上午會發生的類型a(變量賦值函數定義的計算等等)

此外,您可以使用import語句添加的東西到你的導入列表。如所見here.

+0

我有一種感覺'進口'不符合你的想法。 – Suever

+0

閱讀該文檔頁面中「import」的用途......非常仔細。這與你在這裏的推理是否一致? *提示:這個問題中的代碼很可能不是**設計中的面向對象*。 – rayryeng

1

Octave syntaxt與MATLAB不完全兼容。例如,對於在倍頻定義函數的首選語法是這樣的:

function ret = f() 
    %do something 
endfunction 

但MATLAB不接受的語法和有像調用本機代碼和差異等方面的差異......所以它不是簡單的將八度音程庫的每個語句轉換爲matlab或將C++源代碼轉換爲mex。
一個簡單的方法是,您應該安裝Octave並從中運行八度腳本,然後將結果保存到mat文件並在MATLAB中加載該文件。您可以使用system函數來執行八度音或從外殼運行它。

3

Octave語言是Matlab語言的超集。如果qp只使用Matlab語言,那麼您可以簡單地將它添加到您的Matlab路徑並完成它。

但是,Octave的qp大量使用Octave only語言,所以您基本上必須自己移植代碼。沒有這方面的工具,你必須將代碼從一種語言轉換爲另一種語言。另外,實際求解器是用C++編寫並使用liboctave的函數__qp__。 兩個更容易的選擇比移植qp是:

  • 從您的MATLAB會話中的數據保存到一個文件save foo.mat mydata,叫八度做的工作,並保存結果system ('octave --eval ''load ("foo.mat"); qp (...); save foo.mat ...;'和文件讀回load foo.mat

  • 或更簡單的替代方法,只需使用八度。