声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1015|回复: 0

[编程技巧] 关于C#与Matlab混合编程的问题,恳请诸位高手赐教

[复制链接]
发表于 2009-4-16 14:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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 编辑 ]

代码截图

代码截图
未命名.JPG
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 20:20 , Processed in 0.058483 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表