mex命令错误-g(无优化)

时间:2015-04-14 08:12:21

标签: matlab mex compiler-options

我正在尝试在脚本中使用mex文件。必须进行mexed的C文件是在脚本之前的一个前面步骤中生成的。

当我在脚本中使用以下行时,一切正常并且脚本成功运行。

mex (strcat(component_name,'_s_func','.c'));

但是当我用

添加下面的同一行时
mex -g (strcat(component_name,'_s_func','.c'));

它给了我错误

  

C:\ PROGRA~2 \ MATLAB~1 \ BIN \ MEX.PL:错误:'(strcat(component_name,_s_func,.c))'未找到。

知道为什么在使用-g时无法找到相同的文件,而在没有-g选项的情况下使用时可以找到它?

2 个答案:

答案 0 :(得分:3)

您的陈述的问题在于语法

mex -g [...]

MATLAB假设您使用字符串参数mex'-g'调用'[...]',因此它假定您的文件名为(strcat(component_name,'_s_func','.c'))并且不执行命令。

您可以使用eval发布的解决方案,这样您再次使用字符串'-g''filename.c'来调用它。另一种可能性是使用语法

mex('-g',strcat(component_name,'_s_func','.c'));

因为在调用strcat之前,命令mex才真正执行。

-

这与例如与clear。您可能知道,以下陈述是相同的:

clear a b c
clear('a','b','c');

答案 1 :(得分:-2)

确定可以使用eval命令

执行此操作
file_name=(strcat(component_name,'_s_func','.c'));
eval(['mex -g ',file_name]);