在Windows上,我使用mcc编译了一个MATLAB脚本,该脚本将结构作为唯一参数并将其输出作为文件写入。当我尝试使用
在Windows的cmd上调用它时func.exe "struct('field','data')"
或
func.exe struct('field','data')
我得到了
Attempt to reference field of non-structure array.
Error in func (line 3)
MATLAB:nonStrucReference
通过MATLAB将结构传递给未编译的脚本,例如
matlab /nosplash /nodesktop /r "func(struct('field','data')),exit"
假设我仍然希望传递结构而不是不同的参数(这样我可以为运行指定可选参数),是否有解决方法? (谷歌没有帮助!)
谢谢!
答案 0 :(得分:1)
使用Daniel和Navan的信息,我实现的解决方法(给定参数称为args)是
if (ischar(args)); evalc(sprintf('args=%s;',args)); end
既可以在已编译的可执行文件中运行,也可以直接在MATLAB中调用它。它假定用户已进行完整性检查。