首页 新闻 赞助 找找看

c#中调用matlab中的对多元函数求偏导的公式?

0
悬赏园豆:10 [已关闭问题] 关闭于 2014-04-14 13:28

matlab中对多元函数求偏导可以用dx=diff(sym('cos(x+y)'),'x',1),表示cos(x+y)对x求一阶偏导。如何在matlab中写成m文件,然后生成dll,供c#调用????

下面是我写的m文件,也生成了dll文件了,并在c#中调用了这个dll

%%%%%%%%%%%%%%%%%%%%%%

function [ derivative ] = GetDerivative( expression,x,n )

derivative = diff(sym(expression),x,n);

end

%%%%%%%%%%%%%%%%%%%%%%

在c#中代码如下:

#region 调用matlab中求偏导的函数
DerivativeClass dc = new DerivativeClass();
//函数表达式
MWCharArray func = "cos(x * x + 3 * y) + sin(3 * x) * y";
//自变量
MWCharArray x = "x";
//n阶求偏导
MWNumericArray n = 1;
Console.WriteLine("func = {0};x = {1};n = {2}", func, x, n);
//开始调用matlab求偏导函数
MWArray result = dc.GetDerivative(func, x, n);
string de = result.ToString();
string d = de;
#endregion

总是运行到dc.GetDerivative(func, x, n)时候就提示错误:

... MWMCR::EvaluateFunction error ...
Undefined function 'sym' for input arguments of type 'char'.
Error in => GetDerivative.m at line 7.

问题补充:

顶起啊,怎么没人帮忙解答了?我查看了一下,涉及到sym或syms的符号计算的时候,生成的dll,不能成功的被c#调用,不过网上也没有解决这个问题,有哪位大虾帮帮忙!

paulhee的主页 paulhee | 菜鸟二级 | 园豆:202
提问于:2014-03-26 20:54
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册