M文件编写注意事项_换行
M文件和程序设计
程序控制指令
➢while循环 while expression
commands end 【说明】 先判断表达式expression的值,如果其值为真,则执行 commands循环体; 执行完循环体后,继续判断表达式expression的值,直到表达式expression 的值为假,结束循环。while循环通常用在循环次数未知的情况下,而且要 在循环体修改循环表达式的值,否则容易造成死循环。
程序控制指令
➢keyboard
从键盘读入多个Matlab指令,直到用户输入return指令才返回。
➢yesinput
v=yesinput('Prompt', default, posible)
【说明】
Prompt是显示在屏幕上的提示信息;default是缺省值,即如果没有键
盘输入时变量v赋值为default;posible是变量v可能接受的值。
令文件和函数文件
五、有关工作空间
1. 工作空间 有了函数文件后,工组空间会变得复杂起来。Matlab将工作空间分成2类:
>> s=Addn(3) s=
6 >> help Addn 计算 1+2+…+n 输入变量:n 累加数值 输出变量:f 计算结果
令文件和函数文件
四、函数的输入变量和输出变量
1. 输入变量和输出变量的检测
n = nargin
用于函数内,返回实际输入变量的个数
n = nargin('fun')
获取fun函数的声明的输入变量个数
warning('message')
显示警告信息message,程序继续运行
lastwarn
M文件及程序调试
程序2:
首先建立函数文件exch.m: function [a,b]=exch(a,b) c=a;a=b;b=c; 然后在MATLAB的命令窗口调用该函数 文件: clear; x=1:10; y=[11,12,13,14;15,16,17,18]; [x,y]=exch(x,y)
M文件的建立与打开
在命令文件main2.m中调用函数文件 factor.m求 s 1! 2! 3! 4! 5! 。 s=0; for i=1:5 s=s+factor(i); end s
3. 函数参数的可调性 在调用函数时,MATLAB用两个永久 变量nargin和nargout分别记录调用该 函数时的输入实参和输出实参的个数。 只要在函数文件中包含这两个变量, 就可以准确地知道该函数文件被调用 时的输入输出参数个数,从而决定函 数如何进行处理。
2. 函数调用 函数调用的一般格式是: [输出实参表]=函数名(输入实参表) 要注意的是,函数调用时各实参出现 的顺序、个数,应与函数定义时形参 的顺序、个数一致,否则会出错。函 数调用时,先将实参传递给相应的形 参,从而实现参数传递,然后再执行 函数的功能。
M文件及程序调试
3. 函数参数的可调性 在调用函数时,MATLAB用两个永久 变量nargin和nargout分别记录调用该 函数时的输入实参和输出实参的个数。 只要在函数文件中包含这两个变量, 就可以准确地知道该函数文件被调用 时的输入输出参数个数,从而决定函 数如何进行处理。
例: nargin用法示例。 函数文件examp.m: 主程序文件mydemo.m: function fout=examp (a,b,c) x=[1:3]; if nargin==1 y=[1;2;3]; fout=a; examp(x) elseif nargin==2 examp(x,y') fout=a+b; examp(x,y,3) elseif nargin==3 fout=(a*b*c)/2; end
内存变量的存储与下载
利用MAT文件可以把当前MATLAB工作 空间中的一些有用变量长久地保留下来, 扩展名是.mat。MAT文件的生成和装入由 save和load命令来完成。常用格式为:
save 文件名 [变量名表] loa表中的变量个数不限, 只要内存或文件中存在即可,变量名之间 以空格分隔。当变量名表省略时,保存或 装入全部变量。
程序2:
首先建立函数文件exch.m: function [a,b]=exch(a,b) c=a;a=b;b=c; 然后在MATLAB的命令窗口调用该函数 文件: clear; x=1:10; y=[11,12,13,14;15,16,17,18]; [x,y]=exch(x,y)
2.6.2 M文件的建立与打开
与WORD的交互操作 在图形窗中截取图形时,应先用鼠标 拖动的方法将图形窗调到需要的大小,然 后利用菜单中的[Edit]项,在[Copy Options] 子项中选[Metafile]模式,再选菜单中[Copy Figure]或[Copy],图就放到剪贴板上去了。 然后可把图形贴向Word的任何文本文件并 在其中做进一步的编辑修改。
第二讲 M文件及函数的编写
M文件及函数的编写 文件及函数的编写
(3)函数体说明及有关注解以(%)开头,用 以说明函数的作用及有关内容 (4)函数体语句 函数体内使用的除返回和输入变量这些在 function语句中直接引用的变量以外的所有 变量都是局部变量,即在该函数返回之后, 这些变量会自动在MATLAB的工作空间中 清除掉。如果希望这些中间变量成为在整 个程序中都起作用的变量,则可以将它们 编写
【例6】前面的要求,m, 10000 】前面的要求,
1.写好程序,存成findsum.m文件 写好程序,存成 写好程序 文件
function [s,m]=findsum(k) s=0; m=0; while(s<=k) m=m+1; s=s+m; end
2.在command window中调用: 在 中调用: 中调用 [s,m]=findsum(10000)
•无需修改程序 无需修改程序
M文件及函数的编写 文件及函数的编写
【例8 】函数的递归调用:阶乘
1.写好程序,存成my_fact.m文件 写好程序,存成 写好程序 文件 function k=my_fact(n) if n>1 k=n*my_fact(n-1); elseif n==0|n==1 k=1; else error(' U input a wrong parameter!') end 2.在command window中调用:num=my_fact(11) 在 中调用: 中调用 MATLAB函数为: 函数为: 函数为 prod(1:1000)
statements 3
M文件及函数的编写 文件及函数的编写
【例3】 编写 文件求 】 编写M文件求
为何要将第 三种情况放 在最后? 在最后?
M文件的编写
disp(m); end end
s=s+k; end disp(‘s’);
2.while语句 循环次数不确定 while语句的一般格式为: while (条件) 循环体语句
end 其执行过程为:若条件成立,则执行 循环体语句,执行后再判断条件是否 成立,如果不成立则跳出循环。
例10 从键盘输入若干个数,当输入0时结束输入,求这些数 的平均值和它们之和。
n=100;
y1=1:2:2*n-1;
y=sum(1./y1);
y
for语句更一般的格式为: for 循环变量=矩阵表达式 循环体语句
end 执行过程是依次将矩阵的各列元 素赋给循环变量,然后执行循环体 语句,直至各列元素处理完毕。
例9 写出下列程序的执行结果。 s=0; a=[1,3,4;15,16,17;18,19,20;21,22,23]; for k=a
例 1+2*3>mp;15+2*3>8+9 返回 1
1+2*(3>8)+9
返回 10
MATLAB运算符
1.关系运算符 关系运算符对于程序的流程控制非常有用. MATLAB共有六个关系运算符,它们分别是
< 小于;< = 小于等于;> 大于;>= 大于等 于;﹦﹦ 等于;~ =不等于 关系运算符可以比较同型矩阵,此时将生成一个 0-1矩阵,当相应元素经关系运算为真时,对应 位置上生成1,否则为0。关系运算符也可以比较 标量和矩阵,此时是标量与矩阵的每个元素分别 比较,生成一个0-1矩阵.
MATLAB的M文件学习和使用_纯手打-真实经验之谈
MATLAB的M文件的学习和使用
一、概念
M文件是MATLAB的程序文件,分为两类:脚本文件和函数文件。
✓脚本文件可以用于执行一些简单的MATLAB命令,运行时直接输入文件名就可以。
✓函数文件使用时不能直接输入函数名,必须由其他语句调用。
二、基本操作:
✓创建M文件:点击工具栏上的图标,或在命令窗口输入edit。
✓打开M文件:点击工具栏上的图标。
✓保存M文件:写好内容后,点击保存按钮,函数文件保存时文件名要和函数名一致。
存储路径一定要是英文。
三、函数M文件格式
函数M文件不能独立执行,有输入参数和输出参数,输出形参多于一个时,用方括号括起来。
格式为:
●function [参数1,参数2,…]=函数名(参数1,参数2,…)
●注释
●函数体
四、示例
1、创建文件,写入函数,并保存。
两个数加、乘运算,定义为ff函数:
2、“当前路径”和文件保存路径一致时才能调用,如果不一致就会报错。
我的文件放在桌面上了,当前路径就是桌面:
3、调用时先给出函数参数的值,如图:
因为是输入输出都是形参,所以变量名可以自己定义:
4、把调用命令写到另一个M文件中,这个是M文件是脚本文件,保存为main1.m,
和在命令窗口调用效果是一样的:
5、运行main1文件,在命令窗口直接输入文件名即可:
或者点击main1文件的运行按钮,命令窗口出现结果:。
图书编写要求
图书编写要求图书的编号、编号要求及易错字1.指南序列按以下排:(第一篇)第一章第一节一、(必须按序列换行)(一)(必须按序列换行)1.(必须按序列换行)(1)1)(序列可不换行)①(序列可不换行)(a)a) (序列可不换行)2.符号及易混淆忽略字:⑴“>”(书名号)改成“>”(拼音:大于)⑵“<”(书名号)改成“<”(拼音:小于)⑶注意“u”和“μ”的区别的区别并按内容正确的表达方式改正。
⑷注意1和l(小写英文字母L)的区别并按内容正确的表达方式改正。
⑸注意0和O(大写英文字母o)的区别并按内容正确的表达方式改正。
⑹注意“x”(英文字母)和“×”(拼音:乘以)的区别并按内容正确的表达方式改正。
⑺注意“:”(比值号即英文分号)和“:”(冒号)的区别,文字后面一律为冒号数字间的比值用比值号。
(注:比值号居中,冒号偏左)⑻如:“葡萄糖-半乳糖”、“表10-2”、“β-葡萄糖醛酸苷酶”中间用短的“-”⑼“1-2日、30—50ml”等改成“1~(拼音:波浪号)2日、30~(拼音:波浪号)50ml”⑽注意删除文字中不必要的空格。
⑾注意“人”和“入”的区别并按正确的表达方式改正。
⑿注意“是”和“足”的区别并按正确的表达方式改正。
⒀注意“面”和“而”的区别并按正确的表达方式改正。
⒁注意“井”和“并”的区别并按正确的表达方式改正。
⒂注意“rn”和“m”的区别并按正确的表达方式改正。
3.症、征、证的用法:并发症;体征、综合征;适应证、禁忌证。
4.章节后面的作者注意删除。
5.指南中已经删除的章节,如其他章节有引用,应删除表明引用的字眼,如:请参照XX。
图书的基本格式1.扉页包括:书名(含副书名),卷(册)序号,作者姓名,著作方式(著、编著、编、主编等),出版社社名,出版地。
2.版权页内容简介,图书在版编目(CIP)数据,图书制作责任者,版权记录,版本记录,定价,出版社申明。
3.内容简介一般按照内容分成两段:(1)简要介绍本书的内容和特点,一般300字以内;(2)读者对象。
vim替换命令
vim替换命令替換(substitute):[range]s/pattern/string/[c,e,g,i]range指的是範圍,1,7 指從第⼀⾏⾄第七⾏,1,$ 指從第⼀⾏⾄最後⼀⾏,也就是整篇⽂章,也可以 % 代表。
還記得嗎? % 是⽬前編輯的⽂章,# 是前⼀次編輯的⽂章。
pattern就是要被替換掉的字串,可以⽤ regexp 來表⽰。
string將 pattern 由 string 所取代。
c confirm,每次替換前會詢問。
e不顯⽰ error。
g globe,不詢問,整⾏替換。
i ignore 不分⼤⼩寫。
g ⼤概都是要加的,否則只會替換每⼀⾏的第⼀個符合字串。
可以合起來⽤,如 cgi,表⽰不分⼤⼩寫,整⾏替換,替換前要詢問是否替換。
vi/vim 中可以使⽤ :s 命令来替换字符串。
以前只会使⽤⼀种格式来全⽂替换,今天发现该命令有很多种写法(vi 真是强⼤啊,还有很多需要学习),记录⼏种在此,⽅便以后查询。
:s/vivian/sky/ 替换当前⾏第⼀个 vivian 为 sky:s/vivian/sky/g 替换当前⾏所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n ⾏开始到最后⼀⾏中每⼀⾏的第⼀个 vivian 为 sky:n,$s/vivian/sky/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有 vivian 为 skyn 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏:%s/vivian/sky/(等同于 :g/vivian/s//sky/)替换每⼀⾏的第⼀个 vivian 为 sky:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g)替换每⼀⾏中所有 vivian 为 sky可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符:s#vivian/#sky/# 替换当前⾏第⼀个 vivian/ 为 sky/:%s+/oradata/apras/+/user01/apras1+ (使⽤+ 来替换 / ): /oradata/apras/替换成/user01/apras1/1.:s/vivian/sky/ 替换当前⾏第⼀个 vivian 为 sky:s/vivian/sky/g 替换当前⾏所有 vivian 为 sky2. :n,$s/vivian/sky/ 替换第 n ⾏开始到最后⼀⾏中每⼀⾏的第⼀个 vivian 为 sky:n,$s/vivian/sky/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有 vivian 为 sky(n 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏)3. :%s/vivian/sky/(等同于 :g/vivian/s//sky/)替换每⼀⾏的第⼀个 vivian 为 sky:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g)替换每⼀⾏中所有 vivian 为 sky4. 可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符:s#vivian/#sky/# 替换当前⾏第⼀个 vivian/ 为 sky/5. 删除⽂本中的^M问题描述:对于换⾏,window下⽤回车换⾏(0A0D)来表⽰,Linux下是回车(0A)来表⽰。
Matlab编程介绍,循环结构
例1、 分别建立命令文件和函数文件,将华氏温度f转换 为摄氏温度c。
程序1: 首先建立命令文件并以文件名yy1.m存盘。 clear; %清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); c=5*(f-32)/9 然后在MATLAB的命令窗口中输入yy1,将会执行 该命令文件,执行情况为: Input Fahrenheit temperature:73 c= 22.7778
结果为: a=1 b=2 c=3 x1=-1+1.4142i,x2=-1-1.4142i
3、程序的暂停 暂停程序的执行可以使用pause函数,其调用格式为: pause(延迟秒数) 如果省略延迟时间,直接使用pause,则将暂停程序, 直到用户按任一键后程序继续执行。 若要强行中止程序的运行可使用Ctrl+C命令。
例:求任意有限数组a=[a(1),a(2),…,a(n)] 中数值最大的元素M以及所在位置k.
分析: 这是一个求n个实数中最大(最小)数的问题,可 以编制一个函数文件,随时调用。首先可以假设最大数 M=a(1),位置k=1;再从第二个数到最后一个数分别同 M比较,取较大者为M,同时保留其位置。因此,运用 循环加判断编制程序来实现。
编写完成后以文件名dengji存盘。此时,MATLAB函数库 中多了个函数dengji.m,可进行调用。在命令窗中试运行如
下:
>> jb=dengji(81) jb = B %调用函数dengji
例: 计算分段函数的值。 x=input('请输入x的值:'); if x<=0 y= (x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x*x))/2; end Y
m文件编辑器
< >
<= 小于等于 A<=B ans=[0 1 1 1] >= 大于等于 A>=B ans=[1 1 0 0] == 等于 A==B ans=[0 1 0 0] A=1 ans=[1 0 0 0]
程序流程控制:循环
for循环
for lv=start:step:stop 循环体 End
while循环
while 表达式 循环体 end
程序流程控制:分支
if 逻辑表达式 执行体 end
if 逻辑表达式 执行体1 else 执行体2 end if 逻辑表达式1 执行体1 elseif 逻辑表达式2 执行体2 … … end
Coding .m file
Table of Content
Variable
m文件编辑器
打开:“edit” 颜色表明文本属性。修改默认状态: preference “current directory” 当前任务的程序/函数/数据 的存放位置 “Set Path”: 设置Matlab的搜索路经
~= 不等于
A~=B ans=[1 0 1 1]
A~=1 ans=[0ห้องสมุดไป่ตู้1 1 1]
A R B = find(A R B)
逻辑运算
非0即1
A=[5 -4 0 -0.5] B=[0 1 0 9] A&B=[0 1 0 1] A&1=[1 1 0 1] A |B=[1 1 0 1] A|1=[1 1 1 1] ~A =[0 0 1 0] ~1=0
m文件与分支结构
如果变量说明是全局的,函数可以与其它函数、MATLAB 工 作空间和递归调用本身共享变量。为了在函数内或 MATLAB 工作空间中访问全局变量,在每一个所希望的 工作空间,变量必须说明是全局的。
实际编程中,无论什么时候应尽量避免使用全局变量。
思考: 总结非函数m文件与函数m文件的区别
格式
非函数 命令行与注释
函数m文件
函数m文件的格式及调用 格式:
function [输出表]=函数名(输入表) 函数体
注: 1.其中: [输出表] 是函数的返回值,若输
出表中只有一项,则方括号可省略。
2.保存的时候函数名必须与定义它的文件名主名相同
Example:
已知 f (x) ex sin x cos x,
M文件与分支结构
天津理工大学理学院:赵瑞
一、 脚本文件(M-文件)
对于简单问题,使用直接输入命令简单有效;对稍复杂和 多次重复的应用,直接输入命令比较麻烦。MATLAB提供 了逻辑解决方案,它允许用户把多个命令放在一个简单的文 本文件中,如同在MATLAB中键入命令一般,这种文件称 为脚本文件,由于脚本文件以m为扩展名,它常称为M文 件。
例如:请编一个函数m文件:avg.m,用于求n维向量x各个元 素的平均值,函数头为:function mean=avg(x,n)
输出参数mean表示n维向量x各个元素的平均值 解:打开一个新的m文件 输入:
function mean = avg(x,n) %x是向量,n是它的维数 mean = sum(x)/n; %返回值是x所有元素的平均值
sum(x) 表示对向量x的各个元素求和
下面利用avg.m求向量x=[1,2,4,8,9,-1.1]的各个 元素平均值 clear x=[1,2,4,8,9,-1.1]; %输入x y=avg(x,6) %求6维向量x平均值y
M文件与程序流程控制
实验三M文件与程序流程控制主要内容:M文件的编写,选择结构语句与循环语句。
一、M文件:M文件分为:命令文件和函数文件。
命令文件没有输入参数和输出参数,只是一些命令行的组合。
函数文件可以输入参数,也可以返回输出参数。
M文件的编写通过文本编辑器实现。
打开文本编辑器方式:三种方法。
edit1、x=linspace(0,2*pi);命令文件y=sin(x);plot(x,y) 见tt.m2、文件的执行顺序:1.检查此函数是否为子函数;2.检查此函数是否为私有目录的函数3.从所设定的搜索路径搜索此函数3、目录操作相关命令pwd 可返回当前工作目录dir 可显示当前工作目录下的内容。
Cd 可改变工作目录设定搜索路径二、程序流程控制1.顺序结构:例1.建立一个命令文件将变量a,b的值交换a=1:10;b=11:18;c=a;a=b;b=c;a,b 见exchange.m2、循环结构:(1)F or 循环语法用于循环次数已知的情况For 变量=变量表达式end例2:产生一个长度为6的调和序列(Harmonic Sequence)x=zeros(1,6); format rat 变为分数for i=1:6 format 改回默认值x(i)=1/i; 见har.mendformat ratx例3:产生一个6阶Hilbert矩阵,hij=1/(i+j-1)x=zeros(6); 使用zeros命令预先配置了以适当大小的矩阵,若不预先for i=1:6 配置矩阵,程序仍可执行,但此时matlab需要动态的增加for j=1:6 或减少)矩阵的大小,因而降低了程序的执行效率。
所以 h(i,j)=1/(i+j-1); 在使用一个矩阵时,若能在事前知道大小。
则最好先使用end zeros.ones等命令来预先配置矩阵所需的内存大小。
Endformat ratdisp(h) 显示数组,见hib.m(2)W hile循环语法:While 条件式一般用于循环次数未知的情况表达式end续例1:x=zeros(1,6);i=1;while i<=6x(i)=1/i;i=i+1;endformat ratx 见har2.m例4.找出最小的n,使得n!>10^100n=1;while prod(1:n)<1e100n=n+1;endfprintf('%g!=%e>1e100\n',n,prod(1:n));见zui.m函数fprintf把数据转换成字符并写入文件或屏幕上可以采用格式控制字符串来控制字符串写出的格式,常用的格式控制有;%e,表示写成指数形式,%f表示写成一般的浮点数形式,%g表示自动选择指数或浮点数的简短格式。
第4讲 M脚本文件和M函数
编程小技巧(3)
创建大型矩阵维度时,用MATLAB内建函数, 如zeros、ones,进行预先分配内存,然后再 进行赋值处理,这样会显著减少所需时间。例 如:生成一个5×10000的Hilbert矩阵, H=zeros(5,10000); for i=1:5 for j=1:10000 H(i,j)=1/(i+j-1); end end
数据类型 Signed 8-bit integer Signed 16-bit integer Signed 32-bit integer Signed 64-bit integer Unsigned 8-bit integer Unsigned 16-bit integer Unsigned 32-bit integer Unsigned 64-bit integer
global 变量名列表 变量名列表中的各个变量用空格隔开,不能用逗号!
全局变量的声明应该发生在全局变量被使用前,全局变量给函数 间的数据传递带来了方便,但却破坏了函数对变量的封装,降 低了程序的可读性,因而在结构化程序设计中,全局变量是不 受欢迎的。特别是当程序较大,子程序较多时,全局变量将个 程序调试和维护带来不便,故不提倡使用全局变量。
主函数和子函数
凡不是匿名函数的所有函数都要在M文件中 定义。 M文件中首先出现的是主函数,后面是任意 个子函数。 主函数比子函数的活动范围要大。主函数可 从外部由MATLAB命令行或其它M文件中的 函数调用,而子函数不能。 子函数只对主函数和同一个M文件内的其它 子函数可见。
私有函数
字符串中的字符以ASCII码存储,因而大小
写是有区别的,可用abs函数查看一个字符的 ASCII码值。
提高M文件执行效率的技巧
提高M文件执行效率的技巧1. 尽量避免使用循环结构MATLAB变量的基本类型是矩阵,当对矩阵的每个元素循环处理时,运算速度很慢。
因此编程时应尽量把数组和矩阵看作一个整体来进行编程,而不是像其他的程序设计语言那样,使用循环结构对矩阵的元素循环进行处理。
利用MATLAB提供的用于矢量化操作的函数,把循环矢量化,这样既可以提高编程效率,也可以提高程序的执行效率。
下面给出一个循环的例子:i=0;for n = 0:0.1:100i=i+1;y(i)=cos(n)end上述程序段把数组中的每个元素都进行函数值计算,这样会耗费大量的运算时间,我们可以把数组看作一个整体来处理,计算函数值,可以修改这个程序段如下。
n = 0:0.1:100;y = cos(n)通过使用MATLAB专门提供的测试程序运行时间的函数,可以发现,把数组看作一个整体,进行操作后,执行效率提高约300倍。
另外,在必须使用多重循环的情况下,建议在循环的外环执行循环次数少的,内环执行循环次数多的,这样也可以显著提高程序执行速度。
2. 在使用数组或矩阵之前先定义维数MATLAB中的变量在使用之前不需要明确地定义和指定维数。
但当未预定义数组或矩阵的维数时,当需赋值的元素下标超出现有的维数时,MATLAB 就为该数组或矩阵扩维一次,这样就会大大降低程序的执行效率。
因此,在使用数组或矩阵之前,预定义维数可以提高程序的执行效率。
3. 对矩阵元素使用下标或者索引操作在MATLAB中,矩阵元素的引用可用两个下标来表示。
例如:A(i,j) 表示矩阵的第i行第j列的元素;A(1:k,j)表示矩阵A的第j列的前k个元素;A(:,j) 表示矩阵的第j列的所有元素。
求矩阵A的第j列元素的平均值的表达式为mean(A(:,j))。
4. 尽量多使用函数文件少使用脚本文件因为每次调用MATLAB的脚本文件都需要将不必要的中间变量加载到内存中,每执行一次,就加载一次。
函数在调用时被编译成了伪代码,只需要加载到内存一次。
第三章M文件设计
命令文件(脚本式M文件) 无输入参数,不返回参数 操作工作空间中的数据 对于需要多次执行的一系列命令特别有用
函数文件(函数式M文件) 可输入参数,也可返回参数 函数的变量为局部变量,也可设外部变量。 扩充MATLAB的函数库
命令文件——MATLAB的命令序列
需要几行(或几十行)命令才能完成的作业, 最好用程序编辑器编写命令文件。对文件命名, 保存在当前工作目录中.
1.矢量化——尽可能使用向量和矩阵操作
例求
1 100000 1
k0 ( 2k 3k )
t=cputime;s=0; for i=1:100000
s=s+(1/2^i+1/3^i); end
向量运算
t=cputime; n=1:100000; s=sum(1./2.^n+1./3.^n);
cputime-t ans =
语法:
while 条件表达式 循环体语句
end
条件表达式一般由变量、数字、逻辑运算、关系运
算符和一般运算符组成,以判断循环的进行和停止;
只要表达式的值(逻辑值)结果为正确(非0),循环继
续;直到表达式值为0,循环停止。
角谷猜想.
对任一自然数n,按如下法则进行运算:若n为偶数, 则将n除2;若n为奇数,则将n乘3加1。将运算结果按 上面法则继续运算, 重复若干次后计算结果最终是1.
q(k+1)=q(k)+quad(f,k,k+1); end q
q= 0.2248 1.1763 2.5522
3.8771
4.8999
MATLAB的程序调试方法 ➢MatLab在执行程序有错时会自动终止运行,并在 其命令窗口(Matlab Command Windows)中给出相 应错误的提示信息 ➢同时MATLAB的编辑器(Editor)具有程序调试功能, 可用调试命令用来检查程序的正确性