目前正在尝试创建脚本化mex文件生成的最小示例。
我正在运行MATLAB .m脚本来生成mex文件。我想将所有参数作为变量传递,以便在给定文件名/路径列表时可以自动执行一堆mex文件构建。
#1 : unknown argument -outdir
input = ' -outdir C:/Users/ian/mexTesting/mexFiles'
mex('src/helloworld.cpp', input)
#2 : unknown filepath / can't find location (interprets entire string as path to mex file)
input = 'src/helloworld.cpp -outdir C:/Users/ian/mexTesting/mexFiles'
mex(input)
#3 : same issue as #2
mex input
#4 : Works, but no variables included, so no easy way to automate
mex src/helloworld.cpp -outdir /mexFiles
所有这些(#4除外)都得到未知的参数-outdir,或者它将输入字符arr解释为mex文件的路径。
有谁知道如何将变量传递给mex命令?
我找不到任何真正回答过这个问题的问题。任何帮助将不胜感激。
答案 0 :(得分:3)
这应该可以解决问题:
input = 'src/helloworld.cpp';
output = '/mexFiles';
eval(['mex ' input ' -outdir ' output]);
答案 1 :(得分:1)
执行表格
的命令时func arg1 arg2 arg3
MATLAB将此视为与
相同func('arg1', 'arg2', 'arg3')
相反,当你做
之类的事情时input = ' -outdir C:/Users/ian/mexTesting/mexFiles'
mex('src/helloworld.cpp', input)
就像你运行
一样mex src/helloworld.cpp ' -outdir C:/Users/ian/mexTesting/mexFiles'
与
相同mex src/helloworld.cpp -outdir C:/Users/ian/mexTesting/mexFiles
如果要将参数参数化为MEX,则需要将每个以空格分隔的参数保留在单独的字符串中。因此,例如,您可以使用
outdirArg = 'C:/Users/ian/mexTesting/mexFiles';
mex('src/helloworld.cpp', '-outdir', outdirArg);
如果要在单个变量中批量处理一堆参数,可以使用单元格数组和逗号分隔的列表扩展,如下所示:
args = {'-outdir', 'C:/Users/ian/mexTesting/mexFiles'};
mex('src/helloworld.cpp', args{:});