中南民族大学
计算机科学学院
MATLAB实验报告
题 目 MATLAB实验
年 级 20##
专 业 计算机科学与技术
指导教师 李波
小组成员(姓名学号)
实验类型 综合型
2014年 4月 22 日
一、实验安排
1.实验目的
1.掌握字符串的生成和操作,掌握单元数组的生成和操作,掌握结构体的生成和操作。
2.掌握MATLAB的脚本文件及其编辑和调试方法,掌握MATLAB程序设计和开发流程,掌握MATLAB的关系运算,逻辑运算及函数操作,掌握MATLAB流程控制语句。
3.掌握基本符号运算,掌握符号函数的绘制,掌握符号函数微积分的运算,掌握符号方程的求解方法,掌握符号积分变换,了解MAPLE函数的调用方法,了解符号计算器的使用。
4.了解MATLAB的图形窗口,掌握MATLAB基本二维图形,三维图形的绘制,以及图形的绘制,如柱形图,饼状图,掌握图形注释的添加和管理,了解三维图形的视点控制及颜色,光照控制
5.了解Matlab的图形对象及其属性,掌握MATLAB图形对象属性的设置及其查询,掌握MATLAB的图形对象句柄的访问及其操作。
2.实验内容
(1) 编写一个脚本,查找给定字符串中指定字符出现的次数和位
(2) 创建2x2单元数组,创建 2×2 单元数组,第 1、2 个元素为字符串,第三个元素为整型变量,第四个元素为双精(double)类型,并将其用图形表示。
(3) 创建一个结构体,用于统计学生的情况,包括学生的姓名、学号、各科成绩等。然后使用该结构体对一个班级的学生成绩进行管理,如计算总分、平均分、排列名次等。
(4) 在MATLAB中使用一个循环确定:如果用户最初在一个银行帐户中存储$10000,并且在每年的年终再存储$10000(银行每年支付6%的利息),那么账户上要积累$1000000要需要多长时间。
(5)设为符号变量,,,试进行如下运算:
(1)
(2)
(3)求的反函数
(4)求以为自变量的复合函数
(6)合并同类项
(7)因式分解将 7798666 进行因数分解,分解为素数乘积的形式
(8)绘制下列函数的图像
,
(9)编写程序,该程序在同一窗口中绘制函数在 之间的正弦曲线和余弦曲线,步长为 ,线宽为 4 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记。
(10)编写程序,实现功能为:创建图形窗口,并且设置其默认背景为黄色,默认线宽为 4 个像素,在该窗口中绘制椭圆 的图像,其中的和任选
3.实验环境
Matlab7
二、算法原理
略
三、Matlab代码
(1)%find where and how many times the string appears.
str=['Today,Iphone 4S has become the most popular smartphone in the world ']
AB=findstr(str,'t');
SZ=length(AB);
disp('The time that string apearing is'),disp(SZ);
disp('the location that the string appearing are'),disp(AB);
(2)A=cell(2,2);
A(1,1)={'Chinese people'};
A(1,2)={'My favorite food is apple'};
A(2,1)={25000};
A(2,2)={pi/2:pi/8:2*pi};
celldisp(A)
cellplot(A)
(3) stu=struct('name',{'HuangZhihui','WuZhentao','XueWenjie','GuanYabo','XueNan','TongPeng'},'number',...
{2012213620,2012213603,2012213631,2012213628,2012213600,2012213624},...
'Chinese',{90,88,78,87,92,67},'Maths',{80,81,89,90,100,60},'English',{98,89,70,90,60,75})
A=stu(1).Chinese+stu(1).English+stu(1).Maths
ave_A=A/3
B=stu(2).Chinese+stu(1).English+stu(1).Maths
ave_B=B/3
C=stu(3).Chinese+stu(1).English+stu(1).Maths
ave_C=C/3
D=stu(4).Chinese+stu(1).English+stu(1).Maths
ave_D=D/3
E=stu(5).Chinese+stu(1).English+stu(1).Maths
ave_E=E/3
F=stu(6).Chinese+stu(1).English+stu(1).Maths
ave_F=F/3
(4)
x=10000;
y=0;
while x<=1000000
x=10000+x*1.06;
y=y+1;
end
disp(y);
或者:
x=10000;
for k=1:100
x=10000+x*1.06;
if x>=1000000
break
end
end
disp(k);
(5)
f = sym('x^4 + x^2 + 1');
g = sym('x^3 + 4*x^2 + 5*x + 8');
f+g
f*g
finverse(g)
%In sym.finverse at 43
syms x
compose(g,f,x)
(6)
f = sym('3*x - 2*x^2 + 5 + 3*x^2 - 2*x -5');
collect(f)
(7)
factor(sym('779866'))
(8)
f = sym('sin(x) + x^2');
ezplot(f,[0,2*pi]);
(9)
x=0:pi/10:2*pi;
sinx = sin(x);
cosx = cos(x);
figure,plot(x,sinx,'LineWidth',4)
hold on,plot(x,cosx,'r:','LineWidth',4)
holdon,plot(x(find(cosx==sinx)),cosx(find(cosx==sinx)),'r*', 'LineWidth',4)
(10)
figure('Color','y');
set(gca,'DefaultLineLineWidth',4);
a = 4; b = 3;
x = linspace(-a,a,100);
y1 = sqrt((1-x.^2/(a^2))*b^2);
y2 = -sqrt((1-x.^2/(a^2))*b^2);
plot(x,y1);
hold on;
plot(x,y2);
四、实验结果及分析
第一题演示结果如下
结果于预期相符
第二题演示结果如下
结果于预期相符
第三题结果如下图
第四题显示结果如图
第五题答案
第六题答案
第七题答案
第八题
第九题
第十题
五、总结
通过本次实验,本次实验我掌握了数组和向量的基本运算与操作。尽管试验中困难重重,但经过一次次的尝试,终于克服了,体会到matlab是一个很实用且易上手的工具,但是掌握起来也需要上机实践!
六、附录
第二篇:MATLAB实验报告
MATLAB实验报告
1.实验目的:将三种含有频率分别为60Hz,180Hz,240Hz的信号(1)、请选择合适的采样频率和采样点数,用FFT分析该信号的频谱并正确显示。(2)、请用切比雪夫I型低通滤波器原型设计一个IIR系统,使其输出只含有60Hz的信号,并显示滤波后的信号及其频谱。
2.实验代码:
wp=0.2*pi; %滤波器的通带截止频率
ws=0.28*pi; %滤波器的阻带截止频率
Rp=1;As=30; %输入滤波器的通阻带衰减指标
ripple=10^(-Rp/20);
Attn=10^(-As/20);
%转换为模拟原型滤波器指标
Fs=100;T=1/Fs;
Omgp=(2/T)*tan(wp/2);
Omgs=(2/T)*tan(ws/2);
%模拟原型滤波器计算
[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s') %计算阶数n和截止频率
[z0,p0,k0]=buttap(n); %归一化切比雪夫1型原型设计
ba=k0*real(poly(z0)); %求原型滤波器系数b
aa=real(poly(p0)); %求原型滤波器系数a
[ba1,aa1]=lp2lp(ba,aa,Omgc);%变换为模拟低通滤波器
%注意,以上4行求滤波器系数ba1、aa1的程序,可由下一条程序替代
%[ba1,aa1]=butter(n,Omgc,'s'); %直接求模拟滤波器系数
%用双线性变换法计算数字滤波器系数
[bd,ad]=bilinear(ba1,aa1,Fs) %双线性变换
[sos,g]=tf2sos(bd,ad) %由直接型变换为级联型
%求数字系统的频率特性
[H,w]=freqz(bd,ad);
dbH=20*log10(abs(H)/max(abs(H))); %化为分贝值
%
figure(1);
plot(w/pi,dbH);title('幅度响应(dB)');
ylabel('dB');xlabel('频率(\pi)');axis([0,1,-40,5]);
T=0.001;
n=0:99;
t=T*n;
x=2*cos(2*pi*60*t)+0.5*cos(2*pi*180*t)+0.6*cos(2*pi*240*t);
y=filter(bd,ad,x);
figure(2);
subplot(2,1,1),plot(t,x);
subplot(2,1,2),plot(t,y);
y1=fft(y);
figure(3);
plot(t,abs(y1));
y2=fft(x);
figure(4);
plot(t,abs(y2));
3.实验结果: