我正在尝试在脚本中使用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
选项的情况下使用时可以找到它?
答案 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]);