2015-05-17 224 views
0

當我在64位Matlab中運行此代碼時,它顯示'此函數只能在MS Windows或Linux下運行'。如何在64位linux機器上運行32位matlab?

% Call the binary executable 
fpath = fileparts(which(mfilename)); 
if strncmp(computer,'PC',2) % MS Windows 
    exec_str = ['"' fpath '/xcv_segment.exe"']; 
elseif strcmp(computer,'GLNX86') % Linux 
    exec_str = [fpath '/xcv_segment']; 
else error('This function can run only with MS Windows or Linux'); 
end 

由於這個原因,我試圖安裝lib-32來安裝glnx86。

sudo -i 
    cd /etc/apt/sources.list.d 
    echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list 
    apt-get update 
    apt-get install ia32-libs 

然後,我運行這個命令來安裝32位MATLAB:./install -glnx86 此安裝完成後,我運行相同的代碼。然而,它仍然繼續使用相同的消息:'This function can run only with MS Windows or Linux'.

回答

-3

使用類似WINE的程序。 WINE幫助Windows可執行文件和dll庫在Linux上工作。

0

computer函數檢查您正在運行的操作系統。這不是一個與外部二進制相關的錯誤(甚至在代碼中沒有被調用)或Matlab的版本。這是if/elseif細分市場阻止你繼續前進。在命令行運行computer,你會看到輸出與Matlab版本無關。

您可以通過更改elseif接受glxna64來更改該代碼以接受64位linux,無論它接着運行外部二進制文件是另一回事。

0

64位linux機器matlab命令computer返回字符串'GLNXA64',並且您試圖與'GLNX86'進行比較。

你的錯誤與無法在64位matlab中運行32位二進制無關,因爲你的代碼沒有達到試圖這樣做的程度。 (ifs帶你到錯誤)

+0

但是,我試圖只運行'fpath = fileparts(which(mfilename)); exec_str = [fpath'/ xcv_segment']; '它說'拒絕權限'。 –

相關問題