0

Matlab2012a に enceval ツールキットをインストールしたい:

Matlab にインストールする enceval ツールキット ファイル

サポート コンパイラ 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のバージョンの問題なのか、それとも何か不足しているのかわかりませんか?

4

1 に答える 1

0

Try passing a string '-largeArrayDims' instead of variable largeArrayDims which is not declared anywhere prior to the call to mex, that is, try running the following:

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)
于 2013-07-25T13:00:00.767 に答える