- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
M文件和函数句柄
除极简单问题外,大多数实际问题不可能仅仅依靠MATLAB指令窗中一条条零碎的指令解决,而需要编程。本章就是为帮助读者编写解决实际问题的程序文件而设置的。
本章的前三节介绍MATLAB程序文件的编写基础,包括程序的基本构件、数据流控制、M文件的基本类型等。
从第7.4节起到第7.7节止,由浅入深地用四大节篇幅分别叙述了编写复杂程序所必需的组件和技术:
各类函数、子函数及对象:主函数、子函数、匿名函数和嵌套函数;内联对象;
直接句柄和匿名句柄。
构成泛函计算能力的eval和feval指令。
变量的使用域和跨内存调用和赋值。
本章最后一节系统介绍提高程序质量、编程效率和动态调试能力的辅助工具:词串彩化和定界符匹配提示、M-Lint代码分析器、交互式调试器和性能剖析器。
本章配备了许多精心设计的算例。这些算例是完整的,可直接演练的。注意:算例中凡带exm前缀文件名的M文件、P文件在随书光盘上都有相应的电子文档。读者通过这些算例,将真切感受到抽象概念的内涵、各指令间的协调,将从感知上领悟到编程的至关要领。
M码编程的基本构件
变量
(Variables)
运算及运算符
标点符号
(Symbol)
关键词
(Keywords)
特殊值(Special Values)Commands and Command line)
MATLAB的数据流控制
for循环和while循环控制
循环结构的基本形式
【例7.2-1】创建Hilbert矩阵。
(1)
(2)
clear
for K=1:15
A = zeros(K,K) ; %2
for ii = 1:K %3
for jj = 1:K %4
A(ii,jj) = 1/(ii+jj-1);
end
end %7
CA(K)=cond(A);
if K==5
format rat
disp(A5=),disp(A)
format
end
end
semilogy(CA)
grid on
xlabel(矩阵的阶),ylabel(矩阵条件数)
title(Hilbert矩阵的条件数)
A5=
1 1/2 1/3 1/4 1/5
1/2 1/3 1/4 1/5 1/6
1/3 1/4 1/5 1/6 1/7
1/4 1/5 1/6 1/7 1/8
1/5 1/6 1/7 1/8 1/9
图 7.2-1 Hibert矩阵条件与其阶数的关系
【例7.2-2】矩阵(数组)构建方法对构建速度的影响。
(1)
clear
tic
K=1000;
for ii = 1:K
for jj = 1:K
A1(ii,jj) = 1/(ii+jj-1);
end
end
t1=toc
t1 =
7.8449
(2) = zeros(K,K);
for ii = 1:K
for jj = 1:K
A2(ii,jj) = 1/(ii+jj-1);
end
end
t21=toc/t1
t21 =
0.2855
(3)
tic
K=1000;
II=repmat(1:K,K,1);
JJ=II;
A3=1./(II+JJ-1);
t31=toc/t1
t31 =
0.0091
【例7.2-3】对于预先指定的控制精度,求,其中要满足约束。
(1)
function [S,N]=exm070203_1(epsilon)
d=inf;k=0;s=0;S=0;
while depsilon
k=k+1;
s=s+k;
d=1/s;
S=S+d;
end
N=k;
function [S,N]=exm070203_2(epsilon)
d=inf
文档评论(0)