- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MatLab3-程序设计1
MatLab 数学建模
第三讲 MatLab程序设计
M文件
M文件可以分为脚本文件(Script)和函数文件(Function)两种。
1 脚本文件:(1)编写文档:点击MATLAB指令窗口上面最左端的图标 ,即新建文件,就可打开MATLAB文件编辑器,像word一样。用户即可在空白窗口中编写程序。例如输入如下一段程序area.m 的例子
% M-file, area.m
% 计算一个球的体积
rea=pi*r^2;
volume=(4/3)*pi*r^3;
fprintf(半径 The radius is %12.5f\n,r)
fprintf(面积 The area of a circle is %12.5f\n,Area)
fprintf(体积 The volume of a sphere is %12.5f\n,volume)
点击编辑调试器工具条图标 ,在弹出的Windows标准风格的“保存为”对话框中,选择保存文件夹,键入新编文件名(如area),点击【保存】键,就完成了文件保存。
(2)点击文件编辑器上面工具条中的保存,命名(例如将上面的程序命名为picture),然后保存。这样的文件就是M-文件:area.m
(3)运行:i)在命令窗口中输入文件名(如上面的area),然后执行。
ii)或直接在文件编辑器上面的工具条中找到debug里面的run(即运行),点击即可(或直接按F5)。
iii)如果发现错误,在写好的程序里直接改正,然后再保存,再运行,注意一定要先保存,后运行。
2 函数文件:我们经常用到的像sin、cos、exp这样的一些函数都是MATLAB软件自身所带的函数,因此直接应用即可,但有时我们为了解决一些问题需要自己编写函数。自己编写函数有两个基本要求
i)必须在MATLAB文件编辑器中编写,也是M-文件。
ii)函数名和文件名必须相同。
例 编写函数 , 计算
(1)打开MATLAB文件编辑器,即点图标,输入
function y= fun1(x) % 表示y是x的函数,x是自变量,fun1是我们自己命名的函数名
y=(x^3 - 2*x^2 + x - 6.3)/(x^2 + 0.05*x - 3.14);
然后保存。
注:在自己编写的函数前都要写上function(关键字),表示这是自己定义的函数。fun1表示函数名,那么最后保存文件也要命名为fun1。
在指令窗口运行以下指令:
fun1(1)*fun1(2)+fun1(3)*fun1(3)
ans =
-12.6023
例:计算阶层函数 fact.m
function output = fact(n)
if n == 1
output = 1;
return;
end
output = n*fact(n-1);
二 MATLAB控制流
for循环结构
For循环允许一组命令以固定的和预定的次数重复。For循环的一般形式是:
for x = array
{commands}
end
在for和end语句之间的{commands}按数组中的每一列执行一次。
【例】 for n=1:10
x(n)=sin(n*pi/10);
end
? x
x =
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
For循环可按需要嵌套。
n=0:1:10;
for i=1:11
for j=1:11
y(i)=sin(n(i));
n(j)=n(j)*10;
end
end
y =
Columns 1 through 7
0 -0.5064 0.9300 -0.8027 -0.1425 -0.9765 -0.5118
Columns 8 through 11
0.8586 -0.9957 0.9917 0.9287
n =
1.0e+012 *
Columns 1 through 7
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Columns 8 through 11
0.7000
文档评论(0)