2013-07-25 81 views
0

我想對我的Matlab2012a安裝enceval工具包:使用eval,未定義函數或變量'largeArrayDims'時出錯。

enceval toolkit file to install on Matlab

我已經安裝了支持的編譯器的Visual Studio 10和SDK 7.1。 他們在file.m寫了這個代碼進行安裝:

archstr = computer('arch'); 
if(strcmp(archstr,'win64')) 
    lapacklib = fullfile(matlabroot, ... 
    'extern', 'lib', 'win64', 'microsoft', 'libmwlapack.lib'); 
    blaslib = fullfile(matlabroot, ... 
    'extern', 'lib', 'win64', 'microsoft', 'libmwblas.lib'); 
    command = 'mex (''LLCEncodeHelper.cpp'', lapacklib, blaslib, largeArrayDims)'; 
elseif(strcmp(archstr,'win32')) 
    lapacklib = fullfile(matlabroot, ... 
'extern', 'lib', 'win32', 'microsoft', 'libmwlapack.lib'); 
    blaslib = fullfile(matlabroot, ... 
    'extern', 'lib', 'win32', 'microsoft', 'libmwblas.lib'); 
    command = 'mex(''LLCEncodeHelper.cpp'', lapacklib, blaslib)'; 
elseif strcmp(archstr,'glnx86') 
    command = 'mex -O LLCEncodeHelper.cpp -lmwlapack -lmwblas'; 
elseif strcmp(archstr,'glnxa64') 
    command = 'mex -O LLCEncodeHelper.cpp -lmwlapack -lmwblas -largeArrayDims'; 
else 
    error('System architecture could not be identified'); 
end 

mexCmds=cell(0,1); 
mexCmds{end+1}=command; 

for i=1:length(mexCmds) 
    fprintf('Executing %s\n',mexCmds{i}); 
    eval(mexCmds{i}); 
end 

當我運行這段代碼,我得到這個異常:

*Executing mex ('LLCEncodeHelper.cpp', lapacklib, blaslib, largeArrayDims) 

Error using eval 

Undefined function or variable 'largeArrayDims'. 

Error in featpipem_setup (line 32) 

    eval(mexCmds{i});* 

我不知道爲什麼它是MATLAB版本問題還是有東西丟失?

+0

嘗試沒有largeArrayDims選項編譯(應該是默認無論如何你的版本)。另請參閱:http://stackoverflow.com/questions/8509010/ – nkjt

+0

您的計算機('arch')'的價值是什麼? –

+0

此外,它看起來像在語句'lineif(strcmp(archstr,'win64'))'後面有錯誤的tildes(代碼分界符號)',具體在這裏: \ command ='mex(''LLCEncodeHelper.cpp '',lapacklib,blaslib,largeArrayDims)'\'。他們是否也在原始安裝代碼? –

回答

0

嘗試傳遞字符串'-largeArrayDims'而不是它不調用MEX宣佈任何地方之前變量largeArrayDims的,就是嘗試運行以下:

lapacklib = fullfile(matlabroot, ... 
    'extern', 'lib', 'win64', 'microsoft', 'libmwlapack.lib'); 
blaslib = fullfile(matlabroot, ... 
    'extern', 'lib', 'win64', 'microsoft', 'libmwblas.lib'); 
command = 'mex (''LLCEncodeHelper.cpp'', lapacklib, blaslib, ''-largeArrayDims'')'; 
eval(command) 
+0

我在Matlab上測試ur代碼,並且出現錯誤:'C:\ PROGRA〜 1 \ MATLAB \ R2012A \ BIN \ MEX.PL:錯誤:找不到'largeArrayDims'。 錯誤使用mex(行206) 無法成功完成.' – dawad

+0

一個更多的嘗試:使用''--largeArrayDims'',而不是,即:'command ='mex(''LLCEncodeHelper.cpp'',lapacklib,blaslib ,''-largeArrayDims'''''' –

+0

Thx,它終於運行得非常好:) – dawad