MatrixVB是MathWorks针对VB提供的一个Matlab库,它提供了600多个函数,包括基本的数学运算和功能强大的信号处理、线性代数、串运算及图形图像处理功能等,为VB提供了强大的功能扩展。在VB中使用该数学工具包可避免重复性劳动,从而减少开发人员实现算法和界面设计的困难。
MatrixVB是一个独立的产品(可以从www.mathworks.com得到),其使用十分方便。MatrixVB安装完成后,只需在VB工程中引用Mmatrix即可。
示例代码如下:
说明: 工业生产中经常需要对采集到的原始信号进行分析,并对分析结果进行实时的图形化显示,下面通过在VB中引用Mmatrix来实现这一功能。代码如下:
- Dim ax as Variant ’声明坐标轴
- Private Sub Form_Resize()
- vbrefresh ax ’刷新坐标轴
- End Sub
- Private Sub Form_Load()
- ax = vbaxes(Form1.hWnd)
- ’将坐标轴置于窗体
- Call Form_Resize
- End Sub
- Private Sub Command1-Click()
- Dim I,C As Matrix ’声明向量
- Dim m As Integer
- ’从数据库中取原始信号存入一维向量I,取其对应的碳含量存入一维向量C
- ’m为向量I、C的元素个数
- Call Icheck ( I , C , m )
- ’调用校正函数
- End Sub
- Private Sub Icheck (I As Variant, C As Variant, ByVal m As Integer)
- Dim II,CC,Z As Matrix
- Dim a0,a1,a2 As Double
- II = zeros(m,1)
- CC = zeros(m,1)
- II(colon(1,m)) = I(colon(1,m))
- CC(colon(1,m)) =C(colon(1,m))
- ’多项式拟和求解
- Z = polyfit ( II, CC, 2 )
- ’2 说明用二项式拟和
- a0= Z.r1(1) ’a0为二次项系数
- a1= Z.r1(2) ’a1为一次项系数
- a2= Z.r1(3) ’a2为0次项系数
- Clear axes ’清除坐标轴
- T = Sort ( II )
- ’对原始信号排序,以确定作图区间
- J = Linspace (T(1).r1(1),T(1).r(m),20)
- ’横坐标向量
- Cuv = plus (plus (times (a0,times (X,X) ),
- times (a1,X) ),a2) ’纵坐标向量
- Tmp = plot (J,Cuv) ’绘制曲线
- Hold (“on”)
- Tmp = plot (II, CC,“r.”) ’绘制点
- Hold (“off”)
- End Sub
复制代码
至于是否有你说的命令,我没用过也不太清楚
估计应该是有的,你可以试一下 |