小米手环2读取信息:Matlab与VB混合编程之一??数据类型

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 20:27:13
Matlab与VB结合开发有多种方式,其中利用MatrixVB是实现无缝连接的一种不错的方法,本文对其做较为详细的介绍.
一、什么是MatrixVB?
MatrixVB是MathWorks针对Visual Basic提供的一个Matlab库,为Visual Basic提供了强大的功能扩展.它可以弥补Visual Basic内建数学函数的不足,使用户更容易去开发计算应用方面的程序代码,它富有Matlab绘图的强大功能,数理统计功能,矩阵运算功能 .让Visual Basic也能很轻易地绘出一些数学函数的图形,实现对大量数据的方便处理。

1 、MatrixVB函数库的功能
库中含有600多条Matlab的基本功能函数,可以在VB中直接调用而不必考虑安装庞大的Matlab,这些函数基本上可以满足数据处理需要,主要包括:一维和二维的FFT、线性方程求解、矩阵的奇异值分解、线性规划与二次规划、插值与多项式拟合、绘图等函数 .
2 VB中调用MatrixVB的步骤
1)、安装MatrixVB
2)、引用MatrixVB组件.打开VB创建一个标准工程,打开“工程”菜单“引用”项,找到MMatrix,在前面的方框中划勾,即将MatrixVB组件库添加到工程中(如果在列出的可引用项中找不到MMatrix,可以按下浏览按钮进行浏览查MMatrix,找到后选取即可),然后便可以在VB工程中直接使用MatrixVB提供的函数.

二、MatrixVB支持的数据类型
除了VB所支持的类型外,引用Mmatrix还又增加了一种矩阵类型的数据,给图象处理和矩阵的运算提供了方便。
1、矩阵类型的生成。
1)、由数组直接生成。
例:Dim a(0 To 1, 0 To 2) As Double
Dim b As Variant
a(1, 1) = 3
a(1, 2) = -5
b = mabs(a) //生成矩阵。
b.Show
这种方法个人感觉不太好,用mabs()改变了原数组的值,所以运用起来有限。由此引入第二种方法。
2)、由函数产生矩阵。
常用的有:
z=zeros(3,6) 产生一个三行六列的零矩阵。注:矩阵下标是从1开始的。
Z=ones(3,5) 产生三行五列的全1矩阵。
Z=magic(3) 产生三阶的魔方矩阵。
此外其余的特殊矩阵参考refguide.pdf中的Special matrices部分。一般情况下都先构造零矩阵,然后用循环的方法进行赋值勤。
2、矩阵访问
矩阵元素访问也有两种方式,也分别做个介绍。
1)、用序号访问。
例:z=zeros(2,4)
m = zeros(2, 4)
m(1) = 4
m(2) = 2
m(8) = 3
m.Show
结果为:
4 0 0 0
2 0 0 3
注意:是列优先,这点从m(2)的赋值可以看出。
2)、用rN和iN进行访问。
N代表代表矩阵的维数,有常见的为1,2,3;
i代表实部,i代表虚部。
如上例,z.r2(1,1)=4,z..r(2,1)=2,z.r(2,4)=3;
同理,name.r1(i), name.r3(i ,j ,k)用来取一维和三维矩阵的元素。
3、将矩阵转换为VB的数据类型
由2的访问然后赋值给vb数据就行了,不过复数没有办法赋值,还有矩阵的
据类型都是double型的。赋值的时候要注意。
4、矩阵的属性和方法。
1)、.show属性。
打开MatrixVB Viewer观察矩阵,在调试的时候比较有用。
2)、.simple属性
这个属性我研究好久也没明白到底是要做什么的,知道的帮解释一下。
3)、.rN 和.iN属性
在2中已经介绍。
4)、.rows和.cols属性。
从字面意思就能看出来,它们分别返回矩阵的行数和列数。
5)、.dims和.dimension属性
array.dims返回矩阵的维数。
Array.dimension(n)返回矩阵第n维的元素个数。
5、矩阵的保存。
命令:vbsave, vbload
格式:vbsave filename variable
vbload (filename)
例:t=ones(3,2)
vbsave “ones.txt” t //这是按矩阵的形式输出的。
m=vbload(“ones.txt”)
不要打开看噢,里边可不象想象的那样。
如果要想看到矩阵的内容,采用下面的方法:
Dim fid As Variant
Dim a As Variant
a = ones(4, 7)
fid = fopen("one.txt", "w")
Call fprintf(fid, "%g\n", a)
fclose (fid)
这是把矩阵所有的元素都输出为一列,数据文件只能用dos方式打开,也可以用UtralEdit来打开。

这一部分主要是讲的矩阵,下一部分将总结一下MatrixVB矩阵的基本运算。