MATLAB 入门教程四:控制流 取自http://www.matlabsky.com/forum-viewthread-tid-17680-fromuid-8
时间:2011-06-02 来源:ttschina
象许多计算机语言一样,Matlab也有控制流语句。控制流语句使Matlab脱离了仅限于简单计算的水平,使它成为完全高水平的矩阵运算语言。
介绍MATLAB的几个最基本的选择和循环控制语句,if , elseif , switch , while和for语句,这些语句的格式和作用与一些编程语言比如C语言差不多,也很容易理解。编程的时候就不能在命令窗口中直接一行行的输入,需要建立一个m文件,在文件里写你需要的代码,然后运行。
- While语句:
你必须给while语句指定一个结束的条件,才能使循环结束,否则他将一直循环下去。
while 循环的一般格式为:
while 表达式
语句组
end 现在用while语句来求1到100所有数字的和。代码如下:
- sum=0
- k=1;
- while k<=100;
- sum=sum+k;
- k=k+1;
- end
- sum
下面再用一个简单的问题来说明while 循环的用法。求解阶乘n!具有100位数字的整数n 是多少?
- n=1;
- while prod ( 1 : n ) < 100;
- n=n+1;
- end
- n
5x4x3x2x1=120
若n=6,则6!=720,非100位数字
- for语句:
现在用for语句来求第一个面的问题,代码如下:
- sum=0;
- for k=1:100;
- sum=sum+k;
- end
- sum
- for i=1:5;
- x(i)= 2*i;
- end
- x
- for i=1:5;
- for j=1:3;
- y(i, j)= i*j;
- end
- end
- y比较产生的x和y值你就可以理解什么是循环可以嵌套啦!
- If和else语句:
If 条件语句
表达式1
else
表达式2
end
例子,现在我们要对下面这个向量进行处理:
1 2 3 4 5 6 7 8 9
让它变成:
1 2 3 4 5 4 3 2 1
- for k=1:9;
- if k<=5;
- a(k)=k;
- else;
- a(k)=10-k;
- end
- end
- a
- else if语句
If 条件语句1
表达式1
else if 条件语句2
表达式2
else
表达式3
end 下面我们来建立一个具有饱和特性的函数
建立一个名字为f的m文件,代码如下
- function F=f(t)
- if t>=2
- F=40
- else if t>1
- F=30
- else if t>0
- F=20
- else
- F=10
- end
- end
- end
1.首先把所有的函数都写在同一M文件里。
2.在这一M文件里的各个函数可以相互调用。
以上面的函数为例,新建一M文件,文件名:f.m
在M文件里写了函数F=f(t)
函数中,其中function是关键字,固定的不用更改。
F=f(t)是函数名,你可以另取名字,不过为了和题目一致故取名为F=f(t)
(if ,else if)等这些是参数,要符合基本格式就行。
定义函数
function xxx(函数名)【F=f(t)】
xxxx %在这写函数的代码
调用函数
要调用上面定义的函数怎么办呢?
只需写xxx(函数名),以我们的例子我里呢,假如我想知道t=2时F值的话,要写F=f(2)。
这样就可以得到F=40了。
最后,终于到最后了
- 来看一下switch-case语句:
- A=1
- switch A
- case -1
- disp('负数')
- case 0
- disp('零')
- case 1
- disp('正数')
- otherwise
- disp('其他值')
- end
不过最新版本的matlab对于end部分做的相当的到位,对于各位避免错误是相当的给力的,不过养成良好的编程习惯是一个必备的学习态度。
参考资料:
1. matlab中文论坛里阿三会员的帖子。
2.matlab入门与实战。
相关阅读 更多 +