实验三 matlab程序设计。
一、实验目的。
1、熟练掌握matlab的程序流程控制结构;
2、熟练掌握m文件的结构;
3、熟练掌握函数调用和参数传递;
二、实验内容。
1、例4.4 输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。
c=input('请输入一个字符','s');
if c>='a'&c<='z'
disp(setstr(abs(c)+abs('a')-abs('a'))
elseif c>='a'& c<='z'
disp(setstr(abs(c)- abs('a')+abs('a'))
elseif c>='0'& c<='9'
disp(abs(c)-abs('0'))
elsedisp(c);
end2、例4.5 某商场对顾客所购买的商品实行打折销售,标准如下(商品**用price来表示):
price<200没有折扣。
200≤price<500 3%折扣。
500≤price<1000 5%折扣。
1000≤price<2500 8%折扣。
2500≤price<5000 10%折扣。
5000≤price 14%折扣。
输入所售商品的**,求其实际销售**。
price=input('请输入商品**');
switch fix(price/100)
case {0,1**小于200
rate=0;
case {2,3,4**大于等于200但小于500
rate=3/100;
case num2cell(5:9) %**大于等于500但小于1000
rate=5/100;
case num2cell(10:24) %**大于等于1000但小于2500
rate=8/100;
case num2cell(25:49) %**大于等于2500但小于5000
rate=10/100;
otherwise**大于等于5000
rate=14/100;
endprice=price*(1-rate) %输出商品实际销售**。
3、例4.6 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。
a=[1,2,3;4,5,6]; b=[7,8,9;10,11,12];
tryc=a*b;
catchc=a.*b;endc
lasterr显示出错原因。
4、例4.8 已知y当n=100时,求y的值。
y=0;n=100;
for i=1:n
y=y+1/i/i;endy
5、例4.11 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。
sum=0;
n=0;val=input('enter a number (end in 0):'
while (val~=0)
sum=sum+val;
n=n+1;
val=input('enter a number (end in 0):'
endif (n > 0)
summean=sum/n
end6、fibonacci数列的个元素为、…满足以下关系。
f1=1,f2=1,fn=fn-1+fn-2
用m函数文件实现,数列的元素个数为输入变量。
1) 按m函数文件格式创建文件开头。
function f=shiyan4(n)
shiyan4 fibonacci
fibonacci数列。
n 元素个数。
f 构成 fibonacci数列向量。
copyright 2009-04-09
2) 用while循环实现程序功能。
f(1)=1;f(2)=1;
i=2;while i<=n
f(i+1)=f(i-1)+f(i);
i=i+1;
end在命令窗口输入调用命令,调用函数结果如下:
> f=shiyan4(10)f =
3) 用for循环实现。
f(1)=1;f(2)=1;
for i=2:n
f(i+1)=f(i-1)+f(i);
end4)当某个元素大于50时,退出循环结构,程序修改如下。
f(1)=1;f(2)=1;
for i=2:n
if f(i)>50
breakelse
f(i+1)=f(i-1)+f(i);
endend
练习:1、编写m命令(脚本)文件,t的范围为[0,2],步长取0.05,计算函数的值;并将变量t,y1和y2放在同一矩阵a的3行中。
2、编写m命令(脚本)文件,分别使用for和while循环语句计算sum=的程序。
3、编写m命令(脚本)文件,要求从键盘逐个输入数值(input),然后判断输入的数是大于0还是小于0,并输出提示(使用disp函数)是正数(positive one)还是负数(negative one),同时记录输入的正数、负数的个数。当输入0时,中止m文件的运行;当输入第10个数字时,显示记录的正、负数个数并终止程序。
4、编写m命令(脚本)文件,输入一个百分制成绩,要求输出成绩等级为a、b、c、d、e。其中90分~100分为a,80分~89分为b,70分~79分为c,60分~69分为d,60分以下为e。分别用switch语句和if语句实现,并要求判断输入成绩的合理性(即成绩在0到100之间),对不合理的成绩输出出错信息。
5、编写m函数文件,求下面的分段函数。
6、(选做)编写m函数文件,将某班学生某门课的成绩为,用switch结构统计各分段的人数,并将各人的成绩变为用优、良、中、及格和不及格表示,统计人数和成绩变换都用子函数实现。
matlab实验
电子信息工程系实验报告。课程名称 计算机 技术。实验项目名称 实验1 matlab基础 matlab编程应用实验时间 2011 9 18 班级 电信092 姓名学号 t span cr r 10 一 实验目的 熟悉matlab工作环境和基本操作。二 实验环境 硬件 pc机,酷睿i3双核,2g内存 软...
MATLAB实验
实验名称 matlab实验。学生姓名 班级 601 班内序号 31 学号 2012212084 日期 2014.3.15 实验要求 因为现实世界里存在的是模拟信号,因此数字信号处理的第一个问题是将信号离散化,得到一个数字信号,然后再进行数字处理。1 常用数字信号序列的产生 熟悉 matlab 产生数...
MATLAB实验
课程实验报告。课程名称 matlab与机电系统 实验名称实验一matlab数值与符号运算。实验一 matlab数值与符号运算。1 目的和要求。1 熟练掌握matlab的启动和退出 matlab的命令窗口 常用选单和工具栏,通过实例初步认识对matlab的命令和程序运行等。2 熟练掌握matlab数值...