我正在使用COM组件从c#app运行Matlab代码。
在此我使用的Feval函数具有以下形式:
matlab.Feval("MatlabFunction", 1, out result, param1, param2...., paramN);
像这样传入的参数不是很理想,因为我希望有一个函数matlabExecutor可以运行任何函数但是由于Feval接受参数的方式看起来好像我需要一个包装函数每个Matlab函数。
注意:是的,我可以将数组作为参数传入,但这意味着要更改我不想特别做的所有Matlab脚本。
我快速给出了反射,但似乎无法解决如何将它与COM对象一起使用。
答案 0 :(得分:0)
我真的不明白你想做什么,但这是使用cell
传递参数而不需要包装器的另一种方法。它适用于常规的matlab函数,我不确定它是否适用于你的情况。
params = {param1,param2,...paramN};
% works with plot
plot(params{:});
% just a guess, it might works
matlab.Feval("MatlabFunction", 1, out result, params{:});