您的当前位置:首页正文

MATLAB实验报告

来源:好兔宠物网
中南民族大学 计算机科学学院

MATLAB实验报告

题 目 MATLAB实验

年 级 2010 专 业 计算机科学与技术

指导教师 李波 小组成员(姓名学号) 实验类型 综合型

成绩评定 评语: 教师签名: 年 月 日

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)设x为符号变量,fxx4x21,gxx34x25x8,试进行如下运算:

(1)fxgx (2)fxgx (3)求gx的反函数

(4)求g以fx为自变量的复合函数

(6)合并同类项3x2x253x22x5

(7)因式分解将 7798666 进行因数分解,分解为素数乘积的形式 (8)绘制下列函数的图像 fxsinxx2,0,2

(9)编写程序,该程序在同一窗口中绘制函数在 0,2之间的正弦曲线和余弦曲线,步长为 /10,线宽为 4 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记。

(10)编写程序,实现功能为:创建图形窗口,并且设置其默认背景为黄色,默

x2y2认线宽为 4 个像素,在该窗口中绘制椭圆 221的图像,其中的a和b任

ab选

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',... {20,03,31,28,00,24},...

'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*; y=y+1; end disp(y); 或者: x=10000; for k=1:100 x=10000+x*; 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 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*',

(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);

四、实验结果及分析

第一题演示结果如下

,4)'LineWidth'

结果于预期相符 第二题演示结果如下

结果于预期相符

第三题结果如下图

第四题显示结果如图

第五题答案

第六题答案

第七题答案

第八题

第九题

第十题

五、总结

通过本次实验,本次实验我掌握了数组和向量的基本运算与操作。尽管试验中困难重重,但经过一次次的尝试,终于克服了,体会到matlab是一个很实用且易上手的工具,但是掌握起来也需要上机实践!

六、附录

因篇幅问题不能全部显示,请点此查看更多更全内容