0

I am new to Statistical Pattern Recognition Toolbox in matlab. I am trying to use the oaasvm function in this toolbox. Before using this I need to run the compilemex.m. But when I run it I get the following error

>> compilemex
Compiling MEX files of STPRtool...
mex -O -IC:\Program Files\MATLAB\R2013a\toolbox\stprtool\kernels -outdir C:\Program Files\MATLAB\R2013a\toolbox\stprtool\kernels C:\Program Files\MATLAB\R2013a\toolbox\stprtool\kernels\kernel.c C:\Program Files\MATLAB\R2013a\toolbox\stprtool\kernels\kernel_fun.c 
Error using mex (line 206)
The destination directory "C:\Program" cannot be found.

Error in compilemex (line 113)
  eval(mexstr); 

Can anyone tell how shall I proceed to run the oaasvm code?

4

1 回答 1

1

正如 Schorsch 在评论中所解释的,您需要在路径字符串周围添加引号以处理其中的空格。

修复很简单,编辑文件compilemex.m,查找以下部分(第 102 行),然后进行以下更改:

% -- Compile functions -----------------------------
for i=1:length(fun),
   mexstr = ['mex -O -I''' translate(fun(i).include,root) ...
             ''' -outdir ''' translate(fun(i).outdir, root) ''' '];

  for j=1:length(fun(i).source),    
    mexstr = [mexstr '''' translate(char(fun(i).source(j)),root) ''' '];
  end

  fprintf('%s\n',mexstr);

  eval(mexstr);
end

基本上我在路径字符串周围添加了单引号(由单引号转义)。结果是执行的命令将采用以下形式:

mex -O -I'C:\Documents and Settings\Amro\Desktop\stprtool\kernels'
    -outdir 'C:\Documents and Settings\Amro\Desktop\stprtool\kernels'
    'C:\Documents and Settings\Amro\Desktop\stprtool\kernels\kernel.c'
    'C:\Documents and Settings\Amro\Desktop\stprtool\kernels\kernel_fun.c' 

请注意,您不必将此包放在 MATLAB 安装中。您可以将提取的文件夹放在系统上的任何位置,只要将其添加到 MATLAB 路径即可addpath

于 2013-06-14T01:21:25.613 回答