2012-12-20 48 views
4

可能重複:
How do I detect if I’m running MATLAB or Octave?忽略倍頻某些行(但讓他們Matlab的)

我的代碼是用MATLAB設計,我仍然使用它。但是,如果我嘗試使用Octave運行它的某些部分,則會出現錯誤。例如,MATLAB代碼使用pause on,而Octave不會。

有沒有一種方法來檢查它的編程環境中使用的代碼?例如,

if invoking_env == 'Matlab' 
    % do this 
else 
    % ok, so do this 
end 

我可以使用getenv('COMPUTERNAME')但在這種情況下,計算機名稱是一樣的!謝謝。

回答

6

有既是MATLABOctave版本的功能。他們返回不同的值,MATLAB的版本有一些參數,在Octave中不存在。希望有所幫助。

+1

謝謝。我繼續'A = ver; ISEQUAL(A(1,2).name和 'MATLAB')' – Maddy

+5

更好地利用[strcmpi](http://www.mathworks.nl/help/matlab/ref/strcmpi.html),用於比較字符串 –

0

我認爲最好的方法是有檢查此子功能。下面的代碼片段可能是系統中需要的最小代碼片段。通過持久變量,可以重複調用它,而不會受到重大性能影響。

function r = isoctave() 
    persistent x; 
    if (isempty (x)) 
    x = exist ('OCTAVE_VERSION', 'builtin'); 
    end 
    r = x; 
end 

然後,您可以在條件塊中輕鬆使用它。請參閱Octave wiki上的that entry