将struct参数传递给Windows上的MATLAB mcc编译的可执行文件

时间:2015-04-01 17:17:17

标签: matlab

在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"

假设我仍然希望传递结构而不是不同的参数(这样我可以为运行指定可选参数),是否有解决方法? (谷歌没有帮助!)

谢谢!

1 个答案:

答案 0 :(得分:1)

使用Daniel和Navan的信息,我实现的解决方法(给定参数称为args)是

if (ischar(args)); evalc(sprintf('args=%s;',args)); end

既可以在已编译的可执行文件中运行,也可以直接在MATLAB中调用它。它假定用户已进行完整性检查。