|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
问题描述:
1 我先在Matlab R2008a里编写了一个.m文件,名字叫huigui_new.m,使用nlinfit()函数计算三元二次回归,三元二次式为:
y=b1+b2*x1+b3*x2+b4*x3+b5*x1^2+b6*x2^2+b7*x3^3+b8*x1*x2+b9*x2*x3+b10*x1*x3
代码如下:
function result=huigui_new(X,Y)
beta0=ones(10,1);
result=nlinfit(X,Y,@model,beta0);
disp(result);
end
function yhat=myfun(beta,X)
syms x1 x2 x3;
X1=sym('x1');
X2=sym('x2');
X3=sym('x3');
X=[X1,X2,X3];
syms beta1 beta2 beta3 beta4 beta5 beta6 beta7 beta8 beta9 beta10;
b1=sym('beta1');
b2=sym('beta2');
b3=sym('beta3');
b4=sym('beta4');
b5=sym('beta5');
b6=sym('beta6');
b7=sym('beta7');
b8=sym('beta8');
b9=sym('beta9');
b10=sym('beta10');
beta=[b1,b2,b3,b4,b5,b6,b7,b8,b9,b10];
yhat=b1+X(:,1)*b2+X(:,2)*b3+X(:,3)*b4+...
X(:,1).^2*b5+X(:,2).^2*b6+X(:,3).^2*b7+...
X(:,1).*X(:,2)*b8+X(:,1).*X(:,3)*b9+X(:,2).*X(:,3)*b10;
end
2 使用deploytool命令把.m文件转成.net组件,huigui_new.dll以及huigui_new.ctf
3 在VS2005里加入引用,代码请见附件截图,编译时在 “tt.huigui_new(numArgout,ref argsOut,argsIn);“ 出现异常跳出,跟进去发现是argsOut为null,ref为非法。
我是新手第一次接触这种编程,怎么调都不对,希望论坛诸位高手多多帮忙,小弟不胜感激。
PS:我使用的是public void huigui_new(int numArgsOut, ref MWArray[] argsOut, MWArray[] argsIn);这个构造函数。
[ 本帖最后由 spawnlc0212 于 2009-4-16 14:55 编辑 ] |
-
代码截图
-
|