![](https://csdnimg.cn/release/download_crawler_static/87313377/bg7.jpg)
Statement 1
...
Statement n
end
在这里,控制表达式是一个直接写出的 2ⅹ3 的数组,所以语句 1 到 n 将会执行 3 次,
循环指数 ii 在第一次执行时为行向量
�,第二次执行时为
�,第三次执行时为
�。这个例子说明循环指数可以为向量。
对应于 for 循环的伪代码为:
for index = expression
Statement 1
...
Statement n
end
例 4.2
阶乘(factorial)函数
为了说明 for 循环操作,我们将用 for 循环来计算阶乘函数。阶乘函数的定义如下:
N!=1 N=0
N!=N * (N-1) * (N-2) * ... * 3 * 2 * 1 N>0
计算 N 的阶乘的 matlab 代码为
n_factorial = 1
for ii = 1 : n
n_factorial = n_factorial * ii;
end
假设我们要计算 5 的阶乘。如果 n 为 5,for 循环控制表达式将会产生行向量[1 2 3 4
5]。这种循环将会执行 5 次,ii 值按先后顺序依次为 1,2,3,4,5。n_factorial 最终的计
算结果为 1ⅹ2ⅹ3ⅹ4ⅹ5=120。
例 4.3
计算 the day of year
the day of year 是指这一年已经逝去的天数(包括当天)。在平年中,它的取值范围为
1 到 365,在闰年中,它的取值范围 1 到 366。编写一个 matlab 程序,输入年,月,日,输
入为对应的 the of year。
答案:
为了确定 the day of year,程序需要计算先前月份的天数之后,然后再计算当月已经过
去了多少天,在求和的过程中将会用到 for 循环。因为每一个月的天数不尽相同,所以我
们要确定每一个月的正确天数。我们用 switch 结构来确定它。
在闰年时,在二月后的某一天的 the day of year 将会比平年时大 1。因为在闰年的二月
份多出一个 2 月 29 号。所以为了正确地计算出 the day of year,我们必须确定那一年是闰
年。在公历中,闰年是这样规定的
1.能被 400 整除的年为闰年
2.能被 100 整除但不能被 400 整除的年不为闰年
3.能被 4 整除但不能被 100 整除年为闰年
4.其余的年份不为闰年
我们将用到 mod(求余)函数来确定一个数是否能被另一个数整除。如果函数的返回
值为 0,则说一个数能被另一个数整除,否则,则不然。
下面是一个用于计算 the day of year 的程序。注意程序如何计算出前面月份总共的天
数,如何应用 switch 结构确定每一月的天数。