【问题标题】:compilemex in Statistical Pattern Recognition Toolbox in MatlabMatlab 统计模式识别工具箱中的 compilemex
【发布时间】:2013-06-10 02:35:31
【问题描述】:

我是 matlab 中 Statistical Pattern Recognition Toolbox 的新手。 我正在尝试在此工具箱中使用 oaasvm 功能。在使用它之前,我需要运行 compilemex.m。但是当我运行它时,我收到以下错误

>> 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); 

谁能告诉我如何继续运行 oaasvm 代码?

【问题讨论】:

  • 我编辑了您的问题,以添加指向您所指的工具箱的链接。它似乎不是 The MathWorks 的产品。
  • 该产品的最后一次更新是在两年前......您可能会更幸运地联系他们或自己调试它(尽管我认为这里有人使用过这个的可能性很小)。
  • 似乎Program Files中的空格无法识别。因此,代码会查找它找不到的 Program。不确定是否有任何事情可以做,而无需在其他地方安装 Matlab 或修改 compilemex.m 以处理路径中的空格。

标签: matlab svm mex statistics


【解决方案1】:

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

修复很简单,编辑文件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

【讨论】:

    猜你喜欢
    • 2011-02-12
    • 1970-01-01
    • 2016-11-22
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多