matlab与C#混合编程小例子
2014-09-28 20:18
302 查看
首先贴出我的matlab代码:
下面贴出C#代码:
function data_dot=observe_dot(data) y=[0;0;0;]; PP=[1,0,0;0,1,0;0,0,1;]; yy=[]; for i=1:size(data) y1=y; PP1=PP; sgx=0.01; dt=0.01; FF=[1,dt,dt^2/2;0,1,dt;0,0,1;]; HH=[1,0,0]; RR=sgx^2; II=eye(3); K=[0.2720;2.1545;8.5322;]; PS=FF*PP1*FF'; y=FF*y1+K*(data(i)-HH*FF*y1); PP=(II-K*HH)*PS*(II-K*HH)'+K*RR*K'; yy=[yy y(2)]; end data_dot=yy';本函数是一个数组演示的例子,具体功能实现就不再赘述,只需记得若是输入一个行向量,则返回一个数值,若输入一个列向量,则返回一个与之相对应的列向量即可。
下面贴出C#代码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using MathWorks.MATLAB.NET.Arrays; //需要注意的是这两个引用必须要加,而且要先应用matlab中的MWArray.dll才行 using MathWorks.MATLAB.NET.Utility; using System.Windows.Forms; namespace test2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { MWNumericArray data = new MWNumericArray(MWArrayComplexity.Real, 5, 1); for (int i = 1; i <= 5; i++) { data[i,1] = i; } Observe_dot.Observe_dot A = new Observe_dot.Observe_dot(); MWNumericArray num = (MWNumericArray)A.observe_dot(data); textBox1.Text = y1.ToString(); } } }这里需要注意的就是有两种matlab使用的数组形式,分别是MWArray与MWNumericArray,前后要匹配,关于两种声明的用法,可以参看其他文章。
相关文章推荐
- MATLAB与C#混合编程
- Matlab和C#混合编程之数组传值
- C#与MATLAB混合编程常见错误
- C#与Matlab混合编程入门教程一:几种混合编程的方法
- matlab与C#混合编程
- Matlab模型与实际数据对接+C#混合编程
- matlab与c混合编程: 注释导致mex编译链接失败例子
- C#与MATLAB混合编程实例
- C#与matlab混合编程
- 【数据挖掘】Matlab与C#混合编程
- C#与MATLAB混合编程
- MATLAB C#混合编程demo
- 小记Matlab与C#混合编程
- 关于matlab与c#混合编程产生的移植问题
- 一个基于COM组件的Matlab与C#混合编程实例
- matlab与c#混合编程之图像参数传递
- [置顶] MATLAB和c#混合编程实现心电图显示软件
- 【转】Matlab和C#混合编程
- 关于MATLAB和c#混合编程以及如何打包的
- Matlab与C#混合编程环境设置