matlab学习4
编写matlab脚本文件时函数的返回值直接写在定义后面,
顺序结构
-
数据的输入
A=input(提示信息、选项);
-
数据的输出
disp(输出项);
-
程序的暂停
pause(延迟秒数)
若要强行终止程序的运行可使用ctrl+c命令
选择结构
if语句
1 单分支if语句
if 条件
语句组
end
当条件结果为矩阵时,如果矩阵为非空,且不包含零元素,则条件成立,则不成立(尽量不使用矩阵当条件)
2 双分支if语句
if 条件
语句1
else
语句2
end
rem(x,y) :用x对y求余数,结果与x的符号一样 x%y
sqrt(x) :开平方
等价于:power(x,1/2)
switch语句的格式
switch 表达式
case 结果表1
语句组1
case 结果表2
语句组2
case 结果表3
语句组3
.............
otherwise
语句组n
end
结果表中的值可以是多个,用{}括起来,各个值用逗号隔开即可
num2cell(0:34)函数 将数值向量转换为单元数据
循环结构
for语句
for 循环变量=表达式1:表达式2:表达式3 (初值;步长;终值)
循环体语句
end
例如
for k=1:-2:10
k
end
不会出现结果,若表达式2的负值,则要求表达式1>表达式3才会出现值
for循环的循环变量是一个列向量,既
k=0
for i=[1;2;3;4]
k=k+1;
end
这个for只循环一次
while语句
while 条件
循环体语句
end
break:跳出循环体
continue:跳出此次循环
函数文件的基本结构
function 输出形参表=函数名(输入形参表)
猪:若输出形参多余1个,用[]括起来,中间用,(逗号)隔开
函数文件名和函数名:可以不同但是建议同一
return语句表示结束函数的执行
函数调用:
调用格式:
[输出参数表]=函数名(输入实参表)
匿名函数
1.函数句柄变量=@(匿名函数输入参数)匿名函数表达式
例:f=@(x,y) x^2+y^2
f(3,4)
ans=25
2.函数句柄变量=@函数名 // 包括内部函数和自定义函数
函数的递归调用
函数的嵌套调用
一个函数调用他自身称为函数的递归调用
-
直接递归调用
求一个数的阶乘n!
function f=jiecheng(n)
if n<=1
f=1;
else
f=n*jiecheng(n-1);
end求斐波那契数列
function f=ffib(b)
if n>2
f=ffib(n-1)+ffib(n-2);
else
f=1;
end求证斐波那契额前n个平方和=f(n)*f(n+1)
F=[];
for k=1:20
F=[F,ffib(k)*ffib(k)];
end
sum(F)
ffib(20)*ffib(21) -
间接递归调用
函数的可调性
nargin :输入实参的个数
nargout :输出实参的个数
function fout=test1(a,b,c)
if nargin==1 //表示传参个数
fout=a;
elseif nargin==2
fout=a+b;
elseif nargin==3
fout=(a*b*c)/2;
end
//根数输入参数的个数调整函数的作用局部变量:在程序中只在特定过程或函数中可以访问的变量(之前定义的变量几乎都是局部变量)
全局变量:在整个matlab工作空间,也就是全城有效,所有的函数都可以对它进行进行存取和修改
全局变量定义格式: