matlab数组内各个数字相减,如何⽤matlab编程使n个数组两两
相?
2005-09-24
请问怎样⽤MATLAB⽣成可执⾏程序?谢
应⽤举例  下⾯以⼀个线性⽅程组的求解过程为例,介绍通过Matcom实现VC对Matlab程序的调⽤,运⾏环境:Win2000、
Matlab6。1、Matcom4。5、Visual C++6。 0  (1)Matlab运⾏环境中编写程序equation。m,其代码如下:%equation 求解线性⽅程组的解%线性⽅程组形如:A*X = Bfunction X = equation(A, B)X = A\B;  (2)这⾥以⼀个简单的控制台程序为例,其它程序基本相同。 在VC环境中建⽴⼀个名为Test的Win32 Console Application⼯程。  (3)点击...全部
应⽤举例  下⾯以⼀个线性⽅程组的求解过程为例,介绍通过Matcom实现VC对Matlab程序的调⽤,运⾏环境:Win2000、
Matlab6。1、Matcom4。5、Visual C++6。
0  (1)Matlab运⾏环境中编写程序equation。m,其代码如下:%equation 求解线性⽅程组的解%线性⽅程组形如:A*X = Bfunction X = equation(A, B)X = A\B;   (2)这⾥以⼀个简单的控制台程序为例,其它程序基本相同。
在VC环境中建⽴⼀个名为Test的Win32 Console Application⼯程。  (3)点击Visual Matcom⼯具栏上的m++图标,选择保存过的Matlab⽂件equation。
m进⾏转化。如果看到的转化信息提⽰没有错误就可以观察到此时在FileView标签中多了m-files,C++files created from m-
files,Matrix等⽂件。并且该⼯程⽬录下增加了equation。
h,equation。cpp, k,equation。r等的4个⽂件。这时会在VC中出现⼀个转换完毕的⽂件,⽂件中如果报告有错误就要考虑是否程序有问题,可以双击C++files⽂件夹下的equation。
m进⾏修改,再重新转化直到没有错误报告为⽌。  (4)在Test⼯程下建⽴⼀个⽂件test。cpp调⽤转化的Matlab函数,代码为:
#include "stdio。h" #include "matlib。
h" //提供转化后C++代码中使⽤的数据类型,函//数原型及常数#include "equation。h" void main(){ /*解线性⽅程组: X =  */ initM(MATCOM_VERSION); //初始化matlib库 Mm a,b,x; //使⽤矩阵类Mm构造矩阵a,b,x。
a = (BR(1),2,3,semi,4,5,6,semi,7,8,1); //给矩阵a赋值,BR是Matrix库的⼀个 //宏,⽤于定义⼀个矩阵的开始;semi是库的//⼀个常量,⽤于分隔不同⾏的矩阵元素
b = zeros(3,1); //初始化矩阵b为零矩阵3⾏1列 b(1,1) = 37; b(2,1) = 85; b(3,1) = 69; //给矩阵b赋值 x = equation(a,b); //调⽤转化的函数,求解线性⽅程组的解 for (int i = 1; i <= ws(); i++) //把解矩阵X的元素显⽰出来 {  for (int j=1;j<= ls();j++)   printf("x(%d,%d)=%f\n",i,j,x。
r(i,j)); } exitM(); //结束对matlib库的调⽤ return;}   注意:程序中涉及到了两个成员函数。rows()和。cols(),它们分别返回矩阵的⾏数和列数;x。
r(i,j)代表矩阵x的第i⾏第j列的元素。  (5)编译运⾏后结果为x(1,1) = 3。000000 x(2,1) = 5。000000 x(3,1)
= 8。000000与实际结果⼀致。
总结:如果需要转换的。m⽂件不是⼀个函数,只是⼀些Matlab命令的集合,则要在⼯程⽬录下到转换⽂件的。cpp⽂件,将其中的C代码拷贝到需要调⽤它的函数⾥⾯。Matcom克服了mcc命令只能编译⼀个独⽴。
m⽂件的缺点,当所编译的。m⽂件依赖于其他。m⽂件时,只要把被调⽤的。m⽂件与要编译的。m⽂件放在同⼀⽬录下,⽣成的被调⽤⽂件的。h和。cpp⽂件插⼊到VC开发的⼯程中就可以了。  上⾯只是⼀个简单的控制台⼯程的例⼦,我们也可以建⽴其它类型的⼯程,只要在需要调⽤转换后函数的程序中包含matlib。
h并且在响应函数中初始化matlib库initM(MATCOM_VERSION);结束调⽤后做结束⼯作exitM();就可以了。  结束语  本⽂讨论了VC与Matlab的混合编程,主要集中讨论在VC中调⽤Matlab的实现⽅案。
通过⼀个Matcom编译实现的例⼦我们看到,利⽤Visual Matcom转换代码⾮常⽅便,⽣成的代码可读性好,⽽且还⽀持多数图形函数,基本上使Matlab和VC能够得到充分的发挥。作者在海洋遥感图像处理中使⽤这种⽅法来提⾼程序的执⾏速度,取得了⾮常理想的效果。
matlab数组赋值
它不仅解决了Matlab的解释执⾏⽅式带来的执⾏速度过慢的缺陷,更重要的是它完全脱离了Matlab系统,当代码被编译成可执⾏程序后,⼜可⼤⼤提⾼程序的安全性。 。收起

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。