实 验 二  数据操作和简单编程
实验要求
为达到理想的实验效果,同学们务必做到:
(1)实验前认真准备,要根据实验目的和实验内容,复习好实验中可能要用到的命令,想好编程的思路,做到胸有成竹,提高上机效率。
(2)实验过程中积极思考,要深入分析命令、程序的执行结果以及各种屏幕信息的含义、出现的原因并提出解决办法。
(3)实验后认真总结,要总结本次实验有哪些收获,还存在哪些问题,并写出实验报告。实验报告应包括实验目的、实验内容、流程图(较大程序)、程序(命令)清单、运行结果以及实验的收获与体会等内容。
同学们在上机过程中会碰到各种各样的问题,分析问题和解决问题的过程就是积累经验的过程。只要同学们按照上面3点要求去做,在学完本课程后就一定会有很大的收获。
实验目的:   
1.掌握MATLAB各种表达式的书写规则及常用函数的使用
2.掌握建立和执行M文件的方法
3.掌握利用if,while,for等变成语句实现的方法
实验内容:
一、读程序
读课本上的例4.2,4.3,4.4,4.5,4.7,4.8,4.10,4.11的程序,并输入和调试运行
二、数据操作练习
1、练习基本数学函数
函数类别
函数名称
功能
函数类别
函数名称
功能
三角函数
sin
正弦
反三角函数
asin
反正弦
cos
余弦
acos
反余弦
tan
正切
atan
反正切
cot
余切
acot
反余切
sec
正割(余弦倒数)
asec
反正割
csc
余割(正弦倒数)
acsc
反余割
对数函数
log2
2为底的对数
幂函数
pow2
2的幂次
log
e为底的对数
sqrt
开平方
log10
自然对数(以10为底)
指数函数
exp
e为底的指数
复数函数
abs
复数的模
复数函数
real
复数的实部
angle
相位角
unwrap
相位展开
complex
由实部和虚部构造复数
isreal
是否为实数组
conj
复数的共轭
cplxpair
整理为共轭对
imag
复数的虚部
 
 
取整函数
fix
朝零方向取整
其他函数
mod
模数
floor
朝负无穷方向取整
rem
除后取余数
ceil
朝正无穷方向取整
sign
符号函数
round
四舍五入到最近的整数
gcd
最大公约数
abs
绝对值
lcm
最小公倍数
2、利用M文件建立大矩阵
3、利用冒号表达式建立一个向量
e1:e2:e3    其中e1为初始值,e2为步长,e3为终止值
linspace(a,b,n)    其中a和b是生成向量的第一个和最后一个元素,n是元素总数。
4、大矩阵可由方括号中的小矩阵或向量建立起来。例如,
A=[1,2,3;4,5,6;7,8,9];
C=[A,eye(size(A));ones(size(A)),A]
5、矩阵的拆分
1)通过下标引用矩阵的元素,例如,A(3,2)=8
2)采用矩阵元素的序号来引用矩阵元素
A=[1,2,3;4,5,6];
A(3)                        A(:)
3)利用冒号表达式获得子矩阵
C(:,3)
C(2,:)
C(2:4;3:end)
C([1,4],3:end)
4)试验搜集了27个数据,存储在A中,如下:A=[101,102,103,104,105,106,107,108,109,
201,202,203,204,205,206,207,208,209,301,302,303,304,305,306,307,308,309];观察发现前10个数据和后面7个才是正确的,需要把他们组合成一组新的数据。
6、a=[1,2,3;4,5,6;7,8,9];b=ones(3) 比较a*b和a.*b
7、产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。
8、建立一个矩阵A,然后出大于4的元素的位置
9、建立一个字符串向量,字符串包含数字大写字母和小写字母,然后对该向量做如下处理:
(1) 取第1~5个字符组成的子字符串。
(2) 将字符串倒过来重新排列。
(3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。
(4) 统计字符串中小写字母的个数。
10、练习字符串操作函数
函 数 名
函 数 用 途
函 数 名
函 数 用 途
strcat
链接字符串
strvcat
垂直链接字符串
strcmp
比较字符串
strncmp
比较字符串的前n个字符
findstr
在其他的字符串中寻该字符串
strjust
证明字符数组
strmatch
查可能匹配的字符串
strrep
用其他字符串代替改串
strtok
查字符串中的记号
blanks
生成空的字符串
deblank
删除字符串内后面的空格
ischar
字符串检验
iscellstr
字符串的单元检验
isletter
字母检验
isspace
空格检验
strings
strings函数的帮助
11、练习字符转换函数
函  数
功    能
函  数
功    能
hex2dec
将16进制字符串转化为10进制整数
dec2hex
将10进制整数转化为16进制字符串
bin2dec
将2进制字符串转化为10进制整数
dec2bin
将10进制整数转化为2进制字符串
base2dec
转化B底字符串为10进制整数
matlab二进制字符串转数组hex2num
将16进制字符转化为双精度数
upper
改该字符串为大写
lower
改该字符串为小写
fprintf
把格式化的文本写到文件中或显示屏上
sprintf
用格式控制,数字转换成字符串
sscanf
用格式控制,字符串转换成数字
char
ASCII码转换成字符串
num2str
数字转换成字符串
int2str
整数转换成字符串
12、用结构体矩阵来存储5名学生的基本情况数据,每个学生的数据包括学号、姓名、专业和六门课程的成绩。
struct  建立或转换为结构矩阵
getfield  获取结构成员的内容
rmfield  删除结构成员
fieldnames  获取结构成员名
13、练习单元数据
b={10,'liu',[11,21;34,78];12,'wang',[34,191;27,578];14,'cai',[13,890;67,231];}
b(3,3)        b{3,3}   
celldisp(b)    celldisp(b,ss23’)
celldisp  显示单元矩阵内容
cell2struct  把单元矩阵转换为结构矩阵
cellplot  显示单元矩阵的图形描述
struct2cell  把结构矩阵转换为单元矩阵
14、 input函数
    变量名=input(‘提示信息\n’,‘s’)
disp 函数
disp ( 输出项 )
例如:a=5;
disp(a)
pause 函数
用法:pause或pause(n)
三、编程练习
1)[100,999]之间能被21整除的数的个数(提示:先利用冒号表达式,再利用find和length函数,通过Help查询用法)。
2) 建立一个字符串向量,删除其中的大写字母(提示:利用find函数和空矩阵)。
3)求分段函数的值。
  用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。
4)输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分~100分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。
要求:
a)分别用if语句和switch语句实现。
b)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
5)硅谷公司员工的工资计算方法如下:
c)工作时数超过120小时者,超过部分加发15%。
d)工作时数低于60小时者,扣发700元。
e)其余按每小时84元计发。
  试编程按输入的工号和该员工的工时数,计算应发工资。
6)设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。
7)建立6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
思考题:
任意输入10个两位整数,输出其中小于平均值的奇数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。