发布企业信息

Matlab 编译器使用入门

作者:未知  信息来源:未知  2006-1-26

字体大小:  网友评论  进入论坛  

3 MATLAB编译器使用入门12。(1)编写两个 M 函数文件: exm2。m 和 exm2_f。)[exm2。...

12.3 MATLAB编译器使用入门
12.3.1 由M文件创建C MEX文件的入门算例

【例 12.3.1 -1 】先编写 M 文件,然后生成相应的 MEX 文件。该文件用以判断方阵是否奇异。
cd d:\mywork

(1)在 MATLAB 的编辑器中,编写下面的函数文件 exm1 .m 。
[exm1.m]
function y=exm1(A)
[m,n]=size(A);
if m~=n;
error( 'An input matrix should be n-by-n.' )
end

r=rank(A);
if r==m
disp( 'This matrix is nonsigular' )
else
disp( 'This matrix is sigular' )
end

(2)把该函数文件存放于用户目录 d:\mywork 下。
(3)在 MATLAB 命令窗中,运行以下指令对 exm1.m 进行编译。
mcc -x exm1 % 编译 m 文件。

(4)调用 MEX 文件 exm1.dll 进行计算
A=[1,0,1;2,1,0;4,1,4]
exm1(A) % 调用 exm1 来判断矩阵 A 是否奇异。
which exm1 % 查询所调用的 exm1 的路径和全称。
A =
1 0 1
2 1 0
4 1 4
This matrix is nonsigular d:\mywork\exm1.dll


12.3.2 由M文件创建外部应用程序的入门算例
【 例 12.3.2 -1 】 建立一个脱离 MATLAB 环境,可独立运行的外部程序。该程序的功能是:对于给定矩阵 A ,如果存在 S 使得 S -1 AS= Λ,则要求出一个 S ,否则给出信息说明所给的矩阵 A 不能对角化。

(1)编写两个 M 函数文件: exm2.m 和 exm2_f.m 。(第一个文件是主文件。)
[exm2.m]
function exm2
A=[4,0,0;0,3,1;0,1,3];
S=exm2_f(A)

[exm2_f.m]
function S=exm2_f(A)
[m,n]=size(A);
if m~=n
error( ' 输入矩阵应是方阵! ' );
end ;
e=eig(A);
% 检查输入矩阵的特征值是否各异
same=0;
for i=1:m-1
for j=(i+1):m
if e(j)==e(i)
same=1;
end
end
end
% A 可以对角化的条件是 A 具有互异特征值或者 A 为埃尔米特矩阵。
if any(any((A'-A)))&(same==1)
error( ' 矩阵无法对角化! ' );
end
[v,d]=eig(A);
S=v;

(2)把这两个函数文件存放于用户自己的目录 d:\mywork ,并在 MATLAB 中运行检验。
exm2
S =
1.0000 0 0
0 0.7071 0.7071
0 0.7071 -0.7071

(3)生成独立的外部可执行程序。在 MATLAB 指令窗中,运行如下指令
mcc -m exm2 exm2_f

(4)打开 DOS 窗口,在 d:\mywork 目录下,运行 exm2.exe ,得如图 12.3.2 -1 的结果。


图 12.3.2 -1 在 DOS 窗口运行生成程序 exm2.exe 所得的结果

分页:
Google


推荐图文

广告

机械热点图文

  • 数控车床加工编程典型实例分析2
  • 内螺纹车削加工——数控车床编程实例42
  • 子程序编程方法-数控车床编程实例36
  • 塑料模具动画演示

机械风云人物

Copyright © 2004 51base.com Inc. All rights reserved.

无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

感谢中国网络提供带宽支持

《网络营销技巧》