- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六讲 程序设计
第六讲 程序设计(续)
如果想看一些内部函数,可以输入edit 函数名, 例如,edit magic.
书上内容解释
例1 应用switch,建立一个学生成绩管理数据库。
在editor中编写文件student.m
S=struct(Name,Name,Score,Score,Rank,Rank);
for i=1:5
switch S(i).Score
case 100
S(i).Rank=满分;
case a
S(i).Rank=优秀;
case b
S(i).Rank=良好;
case c
S(i).Rank=中等;
case d
S(i).Rank=及格;
otherwise
S(i).Rank=不及格;
end
end
disp([学生姓名 ,得分 ,等级])
for i=1:5
disp([S(i).Name,blanks(6),num2str(S(i).Score),blanks(6),S(i).Rank]);
end
在命令窗口输入
for i=1:10
a{i}=89+i;
b{i}=79+i;
c{i}=69+i;
d{i}=59+i;
end
Name={zhang,wang,li,zhao,liu};
Score={82,65,94,55,100};
Student
例2建立34矩阵A,使.
a=ones(3,4); %该语句可要可不要.
m=3;n=4;
for i=1:m
for j=1:n
a(i,j)=1/(i+j-1);
end
end
format rat
a
例3 使用while语句,取任意整数,如是偶数,则用2除;否则乘3加1,重复此过程,直到整数变为1。
function c=collatz(n)
c=n;
while n1
if rem(n,2)==0
n=n/2;
else
n=3*n+1;
end
c=[c,n];
end
例4 生成非波那契(Leonardo Pisano Fibonacci was born in 1170)数。
如果每对兔子每个月生出一对兔子,且新生的兔子从第二个月开始就能生育,那么一年后由最初的那对兔子一共产生多少对兔子?
用表示个月后兔子的对数,则有(第个月新生兔子对,成年兔子对,所以第个月有兔子对),这是一个递归函数,初始条件为。
(1)
function f=fibonacci(n)
% FIBONACCI(n) generates the first n Fibonacci numbers.
f=zeros(n,1);
f(1)=1;
f(2)=2;
for k=3:n
f(k)=f(k-1)+f(k-2);
end
(2)
function f=fibnum(n)
%FIBNUM(n) generates the nth Fibonacci number.
if n=1
f=1;
else
f=fibnum(n-1)+fibnum(n-2); %递归调用。
end
注:(1)与(2)的结果有什么区别?
例5
function c=collatz(n)
c=n;
while n1
if rem(n,2)==0
n=n/2;
else
n=3*n+1;
end
c=[c,n];
end
plot(c)
hold on
xlabel(X label)
ylabel(Y label)
title(collatz(n))
legend(图形)
例6 求使n!的n。
n=1;
while prod(1:n)1.e100,n=n+1;end
n
例7:已知以及对应的函数值,利用拉格朗日插值公式,计算插值函数
在编辑器中编写如下函数:
function y=lagr1(X,Y,n,x)
y=0.0;
for k=1:n
p=1.0;
for j=1:n
if j~=k
p=p*(x-X(j))/(X(k)-X(j));
end
end
y=p*Y(k)+y;
end
在命令窗口中输入如下命令:
X=[0.0,0.1,0.195,0.3,0.401,0.5];
Y=[0.39894,0.39695,0.39142,0.38138,0.36812,0.35206];
n=6;
y=lagr1(X,Y,n,0.15)
y =
0.3945
如果在命令窗口中输入:
syms x;
lagr1(X,Y,n,x)
则输出的表达式
您可能关注的文档
最近下载
- 2009石油化工行业检修工程动工预算定额说明.docx
- YB∕T6294-2024 锌铝合金镀层弹簧钢丝(报批稿).pdf VIP
- TSGZ6001—2019特种设备作业人员考核规则正文.pdf VIP
- 新湘教版七年级数学上册全册导学案.pdf VIP
- 2025年内蒙古自治区呼和浩特市初一新生入学分班考试真题含答案.docx VIP
- 2025年西藏高考理综真题试卷及答案.docx VIP
- 部编人教版一年级数学上册全册教案.docx VIP
- 超市经营服务方案.docx VIP
- 腐蚀数据与选材手册-校对版.xls VIP
- 六年级下册语文试卷-《金色的鱼钩》一课一练(含答案)人教部编版.pdf VIP
文档评论(0)