Matlab入门到精通ch12Word下载.docx
- 文档编号:15069572
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:26
- 大小:171.71KB
Matlab入门到精通ch12Word下载.docx
《Matlab入门到精通ch12Word下载.docx》由会员分享,可在线阅读,更多相关《Matlab入门到精通ch12Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
r=2;
t=0:
pi/100:
2*pi;
x=r*exp(i*t);
plot(x,'
r*'
);
axis('
square'
)
(2)对这脚本文件直接编译将因错误而失败
mcc-xcircle
?
Error:
File"
circle"
isaScriptM-fileandcannotbecompiledwiththecurrentCompiler.
Errorin==>
H:
\MATLAB53\toolbox\compiler\mcc.dll
(3)把脚本文件改写成函数文件。
[circle_f.m]:
functioncircle_f(r)
(4)再对circle_f.m进行编译,将顺利通过。
mcc-xcircle_f%mcc是编译指令,详见12.4节。
(5)运行生成的MEX文件circle_f.dll
circle_f(0.5)%调用circle_f绘制一半径为0.5的圆
whichcircle_f%查询所调用的circle_f的路径全称。
d:
\mywork\circle_f.dll
图12.1.4-1MEX文件circle_f.dll所画的圆
12.2编译器的安装和配置
12.2.1配置MATLAB编译器的前提准备
图12.2.1-1【SelectMATLABComponets】对话窗的选项局部图
12.2.2为产生MEX文件进行预配置
12.2.2.1对MATLAB编译器应用程序mex的设置
图12.2.2.1-1为产生MEX文件所产生的配置屏1
图12.2.2.1-2为产生MEX文件所产生的配置屏2
12.2.2.2配置正确性的验证
(1)mex应用程序的验证
cdd:
\mywork%把用户目录指定为当前目录
mexmy_yprime.c%由my_yprime.c文件生成my_yprime.dll文件
my_yprime(1,1:
4)%运行my_yprime.dll文件
whichmy_yprime%获得my_yprime.dll文件的位置信息
ans=
2.00008.96854.0000-1.0947
\mywork\my_yprime.dll
(2)在MATLAB命令窗中验证mcc应用程序
mcc-xmy_yprime_m%<
1>
my_yprime_m(1,1:
4)
whichmy_yprime_m
2.0000
8.9685
4.0000
-1.0947
\mywork\my_yprime_m.dll
(3)在DOS提示符后验证mex、mcc应用程序
图12.2.2.2-1在DOS状态下验证编译指令
12.2.3为产生独立外部应用程序进行预配置
12.2.3.1对MATLAB编译器mbuild应用程序的设置(2.0版)
图12.2.3.1-1为产生独立外部应用程序所产生的配置屏1
图12.2.3.1-2为产生独立外部应用程序所产生的配置屏2
12.2.3.2对MATLAB编译器mbuild应用程序的设置(1.2版)
12.2.3.3配置正确性的验证
(1)mbuild应用程序的验证
mbuildmy_ex1.c%在d:
\mywork下生成my_ex1.exe文件
图12.2.3.2-1在DOS窗口运行验证程序my_ex1.exe所得的结果
(2)mcc应用程序的验证
mcc-pmy_hello.m%<
图12.2.3.2-2在DOS窗口运行验证程序my_hello.exe所得的结果
(3)在DOS状态下验证mbuild、mcc工作正确性
图12.2.3.2-3在DOS状态验证编译指令
12.3MATLAB编译器使用入门
12.3.1由M文件创建CMEX文件的入门算例
【例12.3.1-1】先编写M文件,然后生成相应的MEX文件。
该文件用以判断方阵是否奇异。
\mywork
(1)在MATLAB的编辑器中,编写下面的函数文件exm1.m。
[exm1.m]
functiony=exm1(A)
[m,n]=size(A);
ifm~=n;
error('
Aninputmatrixshouldben-by-n.'
end
r=rank(A);
ifr==m
disp('
Thismatrixisnonsigular'
else
Thismatrixissigular'
(2)把该函数文件存放于用户目录d:
\mywork下。
(3)在MATLAB命令窗中,运行以下指令对exm1.m进行编译。
mcc-xexm1%编译m文件。
(4)调用MEX文件exm1.dll进行计算
A=[1,0,1;
2,1,0;
4,1,4]
exm1(A)%调用exm1来判断矩阵A是否奇异。
whichexm1%查询所调用的exm1的路径和全称。
A=
101
210
414
Thismatrixisnonsigular
\mywork\exm1.dll
12.3.2由M文件创建外部应用程序的入门算例
【例12.3.2-1】建立一个脱离MATLAB环境,可独立运行的外部程序。
该程序的功能是:
对于给定矩阵A,如果存在S使得S-1AS=Λ,则要求出一个S,否则给出信息说明所给的矩阵A不能对角化。
(1)编写两个M函数文件:
exm2.m和exm2_f.m。
(第一个文件是主文件。
[exm2.m]
functionexm2
A=[4,0,0;
0,3,1;
0,1,3];
S=exm2_f(A)
[exm2_f.m]
functionS=exm2_f(A)
ifm~=n
输入矩阵应是方阵!
'
end;
e=eig(A);
%检查输入矩阵的特征值是否各异
same=0;
fori=1:
m-1
forj=(i+1):
m
ife(j)==e(i)
same=1;
end
%A可以对角化的条件是A具有互异特征值或者A为埃尔米特矩阵。
ifany(any((A'
-A)))&
(same==1)
矩阵无法对角化!
[v,d]=eig(A);
S=v;
(2)把这两个函数文件存放于用户自己的目录d:
\mywork,并在MATLAB中运行检验。
exm2
S=
1.000000
00.70710.7071
00.7071-0.7071
(3)生成独立的外部可执行程序。
在MATLAB指令窗中,运行如下指令
mcc-mexm2exm2_f
(4)打开DOS窗口,在d:
\mywork目录下,运行exm2.exe,得如图12.3.2-1的结果。
图12.3.2-1在DOS窗口运行生成程序exm2.exe所得的结果
12.4编译指令mcc简介
12.4.1mcc的基本调用格式
12.4.2mcc的选项标志
12.4.2.1编译器2.0选项简介
12.4.2.2在命令行中指定选项标志
【例12.4.2.2-1】假设当前目录上存在一个文件exm3.m,现要求利用M编译器将它转换为C++语言的源码文件,并要求将原M文件中那注释区的内容作为所得C++源码文件的注释。
mcc-t-LCpp-Aannotation:
commentsexm3%得到exm3.cpp和exm3.hpp
12.4.2.3设置缺省选项
【例12.4.2.3-1】假设已在d:
\mywork下创建了文本文件mccstartup(请注意:
该文件不可带扩展名),该文件的内容包括若干编译指令的选项。
现要求利用该文件,从exm3.m出发得到C++语言的源文件。
\mywork%将d:
\mywork设为当前工作目录
typemccstartup%打印文本文件mccstartup的内容
-t-LC-Aannotation:
none
!
copymccstartuph:
\y9857\temp%将mccstartup转移到临时目录下
copyexm3.mh:
\y9857\temp%将待编译M源码转移到临时目录下
delmccstartup,%删除mccstartup
delexm3*%删除原有的编译后文件
dirmccstartup%当前目录下是否含有mccstartup
dirh:
\matlab53\bin\mccstartup%<
matlab>
\bin下是否含该文件
direxm3*%当前目录下是否含有exm3*
1file(s)copied
mccstartupnotfound.
h:
\matlab53\bin\mccstartupnotfound.
exm3*notfound.
copyh:
\y9857\temp\exm3.md:
\mywork
mcc-LCppexm3%<
_?
Theoptionsspecifiedwillnotgenerateanyoutputfiles.
Pleaseuseoneofthefollowingoptionstogenerateanexecutableoutput
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 入门 精通 ch12