前言
Matlab具有很强大的功能,作为一个初学者,仅是记录这几天的学习内容。其中的不足指出,欢迎各位指导和修正
提示:以下是本篇文章正文内容,下面案例可供参考
一、选择结构程序
1.用if语句实现选择结构:在使用if语句时,条件尽量使用标量(物理学中,标量是指在坐标变换下保持不变的物理量)。
调用格式为:
if 条件
语句组
end
例子:输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字,则输出其对应数的平方,若为其他数字则原样输出。
c=input('请输入一个字符:');
if c>='A' && c<='Z'
disp(lower(c))%lower:将大写字母转化为小写字母
elseif c>='a'&& c<='z'
disp(upper(c))%upper:将小写字母转化为大写字母
elseif c>='0' && c<='9'
disp(str2double(c)^2) %str2double:将字符串转化为数值
else
disp(c)
end
2.switch语句(switch表达式应是一个其值可以列举的的表达式,case结果表为switch表达式的取值,当取值有多个时,用单元数据表示)
调用格式
Switch 表达式
Case 结果表1
语句组1
Case 结果表2
语句组2
.....
Case 结果表m
语句表m
· Otherwise
语句组n
End
例子:输入一个英文单词,判断其是否以元音开头
法一
c=input('请输入一个单词:','s');%s:表示把输入的东西当作字符串存起来,即可输入字符串
switch c(1)
case{'A','E','I','O','U','a','e','i','o','u'}
disp([c,'以元音开头的字母']);
otherwise
disp([c,'以辅音开头的字母']);
end
法二
c=input('请输入一个单词','s');
if findstr(c(1),'AEIOUaeiou')>0 %findstr字符串查找函数
disp([c,'以元音字母开头']);
else
disp(c,'以辅音字母开头');
end
二、循环结构程序
1.for循环
调用格式
For 循环变量=表达式1(初值):表达式2(步长):表达式3(终值)
循环体语句(重复执行的语句)
End
例子:计算圆周率
法一:利用无极函数求解:
y=0;
g=-1;
n=input('n=?');
for i=1:n
g=-g;
y=y+g*1/(2*i-1);
end
pai=4*y
法二 :利用定积分
a=0;
b=1;
n=input('n=?');
h=(b-a)/n%积分区间的宽度
x=a:h:b;
f=sqrt(1-x.*x);%函数值向量,
s=[];%空矩阵
for k=1:n
s1=(f(k)+f(k+1))*h/2;
s=[s,s1];%把s1追加到矩阵s中去
end
pai=4*sum(s)
2.while循环
调用格式:
while 条件
循环体语句
end
例子:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。
msum=0;%用于存放最后的累加和
n=0;
x=input('Enter a number(end in 0):');
while x~=0%x不等于0时
msum=msum+x;
n=n+1;
x=input('Enter a number (end in 0):');
end
if n>0
msum
mean=msum/n%平均值mean
end
3.循环的嵌套
例子:用筛选法求某自然数范围内的全部素数
思路:要找出2~m之间的全部素数,首先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3);由于4已被划去。再去找5的倍数(不包括5);。。。直到再划去不超过的倍数,剩下的就是素数。
m=input('m=');%输入m值
p=1:m;%创建向量p
p(1)=0;%表示1不是素数
for i=2:sqrt(m)%从2到根号m变换
for j=2*i:i:m%在p中划去i的倍数
p(j)=0;%以i的倍数序号的元素赋值为0
end
end
n=find(p~=0);%调用find函数,找到p中非零元素的下标赋给n,注意n为向量
p(n)%输出p(n),即所有的素数
该处使用的url网络请求的数据。
总结
选择结构和循环结构在程序中起着非常大的作用,这里仅展示了部分例子和操作程序。随着学习的深入,对于Matlab的使用也会逐渐加深。