MATLAB上机实验报告_基础与实例进阶

MATLAB上机实验报告_基础与实例进阶
MATLAB上机实验报告_基础与实例进阶

实验1MATLAB初步

1. 举例说明format命令的功能;

功能: 设置显示浮点格式

%n 读取一个数字并转换为double %d 读取一个数据并转换为int32

%d8 读取一个数据并转换为int8

%d16 读取一个数据并转换为int16 %d32 读取一个数据并转换为int32 %d64 读取一个数据并转换为int64 %u 读取一个数据并转换为uint32 %u8 读取一个数据并转换为uint8 %u16 读取一个数据并转换为uint16 %u32 读取一个数据并转换为uint32 %u64 读取一个数据并转换为uint64 %f4 读取一个数字并转换为double %f32 读取一个数字并转换为float %f64 读取一个数字并转换为double

%s 读取一个字符串

%q读取一个可以是双引号括着的字符串

%c 读取一个字符,包括空格

%[…]

读取和括号中字符串相匹配的字符。读取操作在首次遇到不匹配的字符和空格时停止。例如%[mus]把summer读成summ

%[^…]

读取和括号中字符串不匹配的字符。读取操作在首次遇到不匹配的字符和空格时停止。例如%[^mus]把summer读成er

2. 说明clc,clf和clear命令的区别;

clc: 清除所有输入和从命令窗口显示输出

clf: 删除从当前图的所有图形对象

clear: 从当前删除所有变量工作空间,释放系统内存。

3. 举例说明help命令的功能;

列出所有主要帮助主题在命令窗口。对应于每个主要帮助主题MATLAB搜索路径上一个文件夹的名字。

4. 如何观察和调用历史命令;

通过命令历史窗口执行历史指令:1)用鼠标左键双击一条指令,即可自动将其发送到命令窗口并立即执行;2)选中一条指令,单击鼠标右键并选择copy 菜单,再在命令窗口单击paste按钮即可。

5. 如何设置当前路径。

1) 选中Matlab快捷启动的图标,鼠标右键菜单选择“属性”;

2) “起始位置”项目后面对应的路径就是启动之后的默认路径,修改成自己期望的路径,然后应用或确定。

实验2 矩阵生成与元素标识

1. 矩阵的创建?????????

???=32943253036120031A ,????

?

???????=757065605550454035302520151051B (尽可能用最简单方法);

A=[1 3 0 0;2 61 3 0;3 5 2 3;4 9 2 3]

B=[1 5 10 15;20 25 30 35;40 45 50 55;60 65 70 75] 2. 生成一个单位矩阵C ,其结构与B 相同; >> C=eye(size(B)) C =

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

3.找出矩阵A 中所有大于8的元素位置(行号和列号);

>> [x,y]=find(A>8) x = 2 4 y = 2 2

4. 将矩阵B 中大于35且小于65的元素值分别加9;

>> B(find(B>35 & B<65))=B(find(B>35 & B<65))+9 B =

1 5 10 15 20 25 30 35 49 54 59 64 69 65 70 75

5. 提取矩阵B 的主对角组元素。

>> diag(B) ans =

1 25 50 75

实验3 MATLAB 矩阵运算(1)

1.矩阵的创建?????????

???=32943253036120031A ,?????

???????---=10699671110986259932

B ; A=[1 3 0 0;2 61 3 0;3 5 2 3;4 9 2 3 ]

B=[2 -3 99 5;2 6 8 9;10 11 7 6; -99 -6 0 1]

2. 矩阵A 和矩阵B 相乘运算;

>> A*B ans =

8 15 123 32 156 393 707 577 -261 25 351 75 -251 46 482 116

3. 求矩阵B 的行列式、逆、秩、特征值和特征矢量(说明具体变量名);

行列式: >> b=det(B) b =

5.5092e+05 逆:

>> b1=inv(B) b1 =

0.0001 0.0081 -0.0104 -0.0110 -0.0026 -0.1022 0.1533 0.0134 0.0104 -0.0128 0.0104 0.0010 -0.0075 0.1888 -0.1091 -0.0074 秩:

>> b2=rank(B) b2 = 4 特征矢量:

>> b3=eig(B) b3 =

29.2415 +29.4980i 29.2415 -29.4980i -32.7248 -9.7583

4. 将矩阵A 和矩阵B 纵向拼接,并将元素-99所在列乘以9;

>> C=vertcat(A,B) C =

1 3 0 0

2 61

3 0 3 5 2 3

4 9 2 3 2 -3 99

5 2

6 8 9 10 11

7 6 -99 -6 0 11 >> [x,y]=find(C= =-99) x =

8 y = 1

>> C(:,y)=C(:,y)*9 C =

9 3 0 0 18 61 3 0 27 5 2 3 36 9 2 3 18 -3 99 5 18 6 8 9 90 11 7 6 -891 -6 0 1

实验4 MATLAB 矩阵运算(2)

1. 将矩阵A 和矩阵B 横向拼接,并提取合并后矩阵的主对角元素。

>> D=cat(2,A,B) D =

1 3 0 0

2 -

3 99 5 2 61 3 0 2 6 8 9 3 5 2 3 10 11 7 6

4 9 2 3 -99 -6 0 1 >> diag(D) ans = 1 61 2 3

2. 求下列矩阵的列均值、列和、列方差、所有元素的平均值,

????

??????=1050100099456321A ,??

???

???????---=10699671110986259932

B 。 >> A=[1 2 3;6 5 4;99 1000 1050]

>> B=[2 -3 99 5;2 6 8 9;10 11 7 6;-99 -6 0 1] 列和:

>> sum(A) ans =

106 1007 1057 >> sum(B) ans =

-85 8 114 21 均值:

>> mean(A) ans =

335.6667 352.3333 >> mean(B) ans =

-21.2500 2.0000 28.5000 5.2500

列方差:

>> var(A) ans =

1.0e+005 *

0.0305 3.3101 3.6505 >> var(B) ans =

1.0e+003 *

2.7009 0.0620 2.2217 0.0109 所有元素的平均值: >> mean(mean(A)) ans =

241.1111

>> mean(mean(B)) ans =

3.6250

3.已知5座城市的坐标分别为:(-201.1,-99.7)、(0,111.5)、(13..8,-69.7)、(91.8,29.7)、(26.9,-199.1)。用不同标记标出各城市,并用兰色虚线连接两两城市;然后根据城市间的两两距离,寻找距离最短的两座城市,并用红色点划线连接。

d=[-201.1 -99.7; 0 111.5; 13.8 -69.7; 91.8 29.7;26.9 -199.1]; plot(d(1,1),d(1,2),'*'); hold on;

plot(d(2,1),d(2,2),'+'); plot(d(3,1),d(3,2),'o');

plot(d(4,1),d(4,2),'s');

plot(d(5,1),d(5,2),'d');

flag=[];dist=1000000;

for i=1:4

for j=i+1:5

x=[d(i,1) d(j,1)];

y=[d(i,2) d(j,2)];

plot(x,y,'--')

d1=sqrt((x(1)-x(2))^2+(y(1)-y(2))^2);

if d1

dist=d1;

flag=[i j];

end

end

end

plot(d(flag,1),d(flag,2),'-.r');

实验5 MATLAB 矩阵运算(3)

1.求下列矩阵的列均值、列和、列方差、所有元素的平均值,

????

??????=1050100099456321A ,??

???

???????---=10699671110986259932

B 。

5、已知5座城市的坐标分别为:(-201.1,-99.7)、(0,111.5)、(13..8,-69.7)、(91.8,29.7)、(26.9,-199.1)。用不同标记标出各城市,并用兰色虚线连接两两城市;然后根据城市间的两两距离,寻找距离最短的两座城市,并用红色点划线连接。

实验6 MATLAB 绘图(1)

1.试绘制)sin(,,23x y x y x y ===,式中]2,2[ππ-∈x ;

y=x^3: clear;clc;

x=-2*pi:pi/180:2*pi; plot(x.^3,'r'); grid on;

y=x^2: clear;clc;

x=-2*pi:pi/180:2*pi; plot(x.^2,'g'); grid on;

y=sin(x): clear;clc;

x=-2*pi:pi/180:2*pi; plot(sin(x),'b'); grid on;

2.试绘制2

2

)1(1),(y

x y x f z +-=

=;

clear;clc; x=-5:0.1:5; y=x;

z=1./(((1-x).^2+y.^2).^0.5); plot(z);

3.生成一个周期为2π,占空比为0.3的方波;

clear;clc;

t=0:pi/180:10*pi; y=square(t,30); plot(t,y); grid

ylim([-1.5 1.5])

4.绘制y 的杆状图)cos(4.0x e y x -=。

clear;clc;

x=0:pi/10:10*pi;

y=exp(-0.4.*x).*cos(x) plot(y); stem(x,y)

5、已知5座城市的坐标分别为:(-201.1,-99.7)、(0,111.5)、(13..8,-69.7)、(91.8,29.7)、(26.9,-199.1),用不同标记标出各城市,并用兰色虚线连接两两城市。

实验7MATLAB绘图(2)

编写程序产生如下信号,并按要求绘制相应的曲线。利用save as命令把图形分别保存成.fig格式和.jpg格式的图像文件。

(1)信号形式y=sin(2x+pi/4),利用plot命令绘制该信号在0<=x<+2pi区间内,且采样间隔为pi/1000的曲线。填加网格线,标题为“正弦信号曲线”,横坐标显示“x”,纵坐标显示“y”。

clc;clear;

x=0:pi/1000:2*pi;

y=sin(2.*x+pi/4);

plot(y);

grid;

title('正弦信号曲线');

xlabel('x');

ylabel('y');

saveas (gcf,'a.jpg');

saveas (gcf,'a.fig');

(2)将上述信号左平移或右平移2得到两个新信号y2和y3,利用hold命令在同一图中显示三条曲线并通过线型和颜色加以区分。

clc;clear;

x=0:pi/1000:2*pi;

y=sin(2.*x+pi/4);

y2=sin(2.*x+pi/4+2);

y3=sin(2.*x+pi/4-2);

plot(y);

hold on;

plot(y2,'g');

plot(y3,'r');

grid;

title('正弦信号曲线');

xlabel('x');

ylabel('y');

saveas (gcf,'a.jpg');

saveas (gcf,'a.fig');

(3)利用subplot命令将上述三个信号利用子图来显示;利用figure命令将上述三个信号分别在不同的窗体中同时显示。

Subplot:

clc;clear;

x=0:pi/1000:2*pi;

y=sin(2.*x+pi/4);

y2=sin(2.*x+pi/4+2); y3=sin(2.*x+pi/4-2); subplot(3,1,1);

plot(y);

hold on;

subplot(3,1,2);

plot(y2,'g');

subplot(3,1,3);

plot(y3,'r');

grid;

title('');

xlabel('x');

ylabel('y');

saveas (gcf,'a.jpg'); saveas (gcf,'a.fig'); figure:

clc;clear;

x=0:pi/1000:2*pi;

y=sin(2.*x+pi/4);

y2=sin(2.*x+pi/4+2); y3=sin(2.*x+pi/4-2); figure;

plot(y);

grid;

hold on;

figure;

plot(y2,'g');

grid;

figure;

plot(y3,'r');

grid;

title('');

xlabel('x');

ylabel('y');

saveas (gcf,'a.jpg'); saveas (gcf,'a.fig');

(4)z = 0:0.1:40;x = cos(z);y = sin(z),利用plot3命令绘制三维曲线并填加相应的坐标轴标注。

clc;clear;

z= 0:0.1:40;

x = cos(z);

y = sin(z);

plot3(x,y,z);

xlabel('x');

ylabel('y');

zlabel('z');

saveas (gcf,'a.jpg');

saveas (gcf,'a.fig');

实验8 MATLAB 序设计(1)

1.分别用for 和while 循环语句编写程序,求出∑==10

15n n s ;

for:

clc;clear; s=0;

for n=1:10 s=s+5^n; end s s =

12207030 clc;clear; s=0; n=1;

while n<=10 s=s+5^n; n=n+1; end s s =

12207030

2.试不用循环语句,改用MATLAB 的矩阵函数求解1题。

c lc;clear;

n=1:10; s=5.^n; sum(s)

ans =

12207030

3. 编写一个函数文件testfun :对于任意整数,若大于0,则返回该数的余弦值,否则返回其绝对值。并将实整数-66代入求此函数的运行结果。

function testfun(x) if(x>0)

y= cos(x); else

y= abs(x); end y

>> testfun(-66) y = 66

a=x;

x=y;

y=a;

x

y

>> x=2;

>> y=1;

>> change(x,y)

x =

1

y =

2

5.利用rand产生10个随机数,利用for循环对其进行排序(从大到小)。

A=rand(1,10);

temp=1;

while(temp==1)

temp=0;

for n=1:9;

if(A(1,n)

t=A(1,n);

A(1,n)=A(1,n+1);

A(1,n+1)=t;

temp=1;

end

end

end

A

A =

Columns 1 through 4

0.7847 0.7702 0.7218 0.4714

Columns 5 through 8

0.4624 0.4609 0.4243 0.3225

Columns 9 through 10

0.1759 0.0358

实验9MATLAB序设计(2)

1. 编写一个M函数文件计算下列级数的和:

x和n的值由input指令给出。

function f=test

x=input('Input the x:\n');

n=input('Input the n:\n');

j=1;

f2=0;

for i=1:n;

j=1;

for k=1:i;

j=j*k;

f1=x^i/j;

end

f2=f2+f1;

end

f=f2+1;

>> test

Input the x:

12

Input the n:

12

ans =

9.3741e+04

2.编制m文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;否则提示,重新输入。

function test

n=0;

k=0;

n=input('请输入密码(整数)\n');

while(k==0)

if n==123

disp('密码正确')

k=1;

else

k=0;

n=input('密码错误,请重新输入密码(整数) \n');

end

end >> test

请输入密码(整数)

124

密码错误,请重新输入密码(整数) 124

密码错误,请重新输入密码(整数) 123

输入正确

3.编制m文件,输入n(正整数),显示所有小于n的质数。

function leap=panduan(n)

leap=1;

for i=2:sqrt(n+1)

if mod(n,i)==0

leap=0;

break;

end

end function zhishu(n)

for m=2:n

if panduan(m)==1

disp(m);

end

end

>> zhishu(15)

2

3

5

7

11

13

4.数组[1:99]中素数(即质数)元素的和

function leap=panduan(n) leap=1;

for i=2:sqrt(n+1)

if mod(n,i)==0

leap=0;

break;

end

end function sum1

k=0;

for m=1:99

if panduan(m)==1

k=k+m;

end

end

k

>> sum1

k =

1061

5.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值以及平方和。

function cal

s=0;

n=0;

s2=0;

temp=input(''); while(temp~=0)

s=s+temp;

s2=s2+temp.^2;

n=n+1;

temp=input(''); end

s./n

s2 cal

1

2

3

4

5

6

7

8

9

ans =

5 s2 =

285

实验10MATLAB数据文件I/O (1)

1. 教材《MATLAB基础与实例进阶》P.111页,思考与练习2 操作题(1)-(2)

(1)将工作目录下的后缀为‘.dat’的文件更改为‘.bin'作为后缀。

filename1='mydata.dat';

fid1=fopen(filename1,'r');

a=fread(fid1)

filename2='mydata.bin';

fid2=fopen(filename2,'r');

fwrite(fid2,a);

b=fread(fid2)

(2)使用MATLAB导入一个WAVE格式的音频文件,并比较与waveread函数读取音频文件的差异。

用waveread函数读取音频文件时:[y,fs,nbits] = wavread(file),file指定音频文件名,y是音频数据。另外该语句还能够返回该音频文件的采样率fs,和采样位数nbits,而使用MATLAB导入WAVE格式的音频文件,是不能控制音频文件的采样率,不能够精确调整。

实验11MATLAB数据文件I/O (2)

1.教材《MA TLAB基础与实例进阶》P.111页,思考与练习2 操作题(3)-(4)

(3)读取例4-8中最后两列数据。

fid=fopen('my.bin','w');

alldata=reshape([1:20],4,5);

fwrite(fid,alldata);

fid=fopen('my.bin');

fseek(fid,12,'bof');

last_two=fread(fid,[4,2])

fclose(fid);

(4)使用textread函数读出例4-12中的所有浮点数,要求小数点后只有一位数。

clc;clear all;close all;

[names,rest]=textread('mytextfile.txt','%s%[^\n]','delimiter',',');

a1=str2num(rest{1});

a2=str2num(rest{2});

a3=str2num(rest{3});

a4=str2num(rest{4});

b=[a1(3),a2(3),a3(3),a4(3)];

fprintf('%4.1f\n',b);

实验12高级图形用户界面设计(1)

1.教材《MA TLAB基础与实例进阶》P.169页,思考与练习2 操作题(1)-(2)(1)建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标器的左键之后显示Left Button Pressed字样。

h0=figure('Color',[1,0,0],'Name','图形窗口','Numbertitle','off','WindowButtonDownFcn','text(0.35,0.5,''Left Button Pressed'')','toolbar','none');

(2)利用图形对象绘制下列曲线,要求先用默认属性创建线条对象,再通过句柄操作改变曲线颜色、线型和线宽,并利用文本对象给曲线添加标注。

clc;clear all;close all;

x1=0:.001:1;

y1=(1+x1.^2)/(1+x1.^4);

subplot(311)

hline1=plot(x1,y1)

x2=0:pi/100:2*pi;

y2=3*x2+sin(x2)-exp(x2);

subplot(312)

hline2=plot(x2,y2)

x3=-1000:1:1000;

y3=log(x3+sqrt(1+x3.^2))/2;

subplot(313)

hline3=plot(x3,y3)

set(hline1,'color','r','linestyle','-','linewidth',0.5);

set(hline2,'color','g','linestyle','+','linewidth',0.5);

set(hline3,'color','b','linestyle','.','linewidth',0.5);

gtext('y=(1+x^2)/(1+x^4);');

gtext('y=3*x+sin(x)-exp(x)');

gtext('y=log(x+sqrt(1+x^2))/2');

实验13高级图形用户界面设计(2)

1. 教材《MATLAB基础与实例进阶》P.169页,思考与练习2 操作题(3)-(4)(3)在一个图形窗口中创建两坐标轴用以显示不同图形,并创建快捷菜单以改变曲线颜色clc;clear all;close all;

h0=figure('toolbar','none','menubar','none','position',[380 200 500 350],...

'name','控件的综合应用'); %创建图形窗口

h_axes1=axes('Position',[0.07 0.08 0.4 0.45],'box','on'); %创建坐标轴

h_axes2=axes('Position',[0.55 0.43 0.42 0.45],'box','on'); %创建坐标轴

%在第一个坐标轴上画图

t=0:0.01:6*pi;

yy=cos(t);

b=1/2/pi;

h_line=plot(h_axes1,t,yy,'LineWidth',2);

axis([-0.5 20 -1.2 1.2]);

%在第二个坐标轴上画图

t=0:0.01:6*pi;

yy=sin(t);

b=1/2/pi;

h_line2=plot(h_axes2,t,yy,'LineWidth',2);

axis([-0.5 20 -1.2 1.2]);

h_menu1=uimenu('label','颜色1'); %创建菜单

h_submenu11=uimenu(h_menu1,'label','红色','callback',...

'axes(h_axes2);set(h_line,''color'',''r'');');

h_submenu12=uimenu(h_menu1,'label','绿色','callback',...

'axes(h_axes2);set(h_line,''color'',''g'');');

h_submenu13=uimenu(h_menu1,'label','黑色','callback',...

'axes(h_axes2);set(h_line,''color'',''k'');');

h_submenu14=uimenu(h_menu1,'label','紫红色','callback',...

'axes(h_axes2);set(h_line,''color'',''m'');');

h_submenu15=uimenu(h_menu1,'label','黄色','callback',...

'axes(h_axes2);set(h_line,''color'',''y'');');

h_menu2=uimenu('label','颜色2'); %创建菜单

h_submenu21=uimenu(h_menu2,'label','红色','callback',...

'axes(h_axes2);set(h_line2,''color'',''r'');');

h_submenu22=uimenu(h_menu2,'label','绿色','callback',...

'axes(h_axes2);set(h_line2,''color'',''g'');');

h_submenu23=uimenu(h_menu2,'label','黑色','callback',...

'axes(h_axes2);set(h_line2,''color'',''k'');');

h_submenu24=uimenu(h_menu2,'label','紫红色','callback',...

'axes(h_axes2);set(h_line2,''color'',''m'');');

h_submenu25=uimenu(h_menu2,'label','黄色','callback',...

'axes(h_axes2);set(h_line2,''color'',''y'');');

h_menu3=uimenu('label','关闭图形窗口','callback','close(h0);'); %创建菜单

(4) 设计一个计算器,实现简单的加、减、乘、除运算

function varargout = work(varargin)

% WORK M-file for work.fig

% WORK, by itself, creates a new WORK or raises the existing

% singleton*.

%

% H = WORK returns the handle to a new WORK or the handle to

% the existing singleton*.

%

% WORK('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in WORK.M with the given input arguments.

%

% WORK('Property','Value',...) creates a new WORK or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before work_OpeningFunction gets called. An

% unrecognized property name or invalid value makes property application % stop. All inputs are passed to work_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help work

% Last Modified by GUIDE v2.5 17-Dec-2013 11:40:56

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @work_OpeningFcn, ...

'gui_OutputFcn', @work_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before work is made visible.

function work_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to work (see VARARGIN)

% Choose default command line output for work

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes work wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = work_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.text1,'String');

textString=strcat(textString,'0');

set(handles.text1,'String',textString);

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.text1,'String');

textString=strcat(textString,'1');

set(handles.text1,'String',textString);

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.text1,'String');

textString=strcat(textString,'2');

set(handles.text1,'String',textString);

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.text1,'String');

textString=strcat(textString,'3');

set(handles.text1,'String',textString);

% --- Executes on button press in pushbutton5.

function pushbutton5_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.text1,'String');

textString=strcat(textString,'4');

set(handles.text1,'String',textString);

% --- Executes on button press in pushbutton6.

function pushbutton6_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.text1,'String');

textString=strcat(textString,'5');

set(handles.text1,'String',textString);

% --- Executes on button press in pushbutton7.

function pushbutton7_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton7 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.text1,'String');

textString=strcat(textString,'6');

set(handles.text1,'String',textString);

% --- Executes on button press in pushbutton8.

function pushbutton8_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton8 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.text1,'String');

textString=strcat(textString,'7');

matlab实验报告

数学实验报告 班级: 学号: 姓名: 实验序号:1 日期:年 月 日 实验名称:特殊函数与图形 ◆ 问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到 明白直观的体现,如函数的性质等。同时,借助直观的图形,使初学者更容易接受新知识,激发学习兴趣。 ◆ 实验目的:本实验通过绘制一些特殊函数的图形,一方面展示这些函数的特点属性, 另一方面,就 Matlab 强大的作图功能作一个简单介绍。 实验原理与数学模型: 1、 球2222x y z R ++= ,x=Rsin φcos θ, y= Rsin φsin θ, z= cos φ, 0≤θ≤2π , 0≤φ≤π 环面 222222222()4(),(cos )cos ,x y z a r a x y x a r φθ+++-=+=- (cos )sin ,sin ,02,02y a r z r φθφφπθπ=-=≤≤≤≤ 2、 平面摆线:2 22 31150,(sin ),(1cos ),0233 x y x a t t y a t t π+-==-=-≤≤ 3、 空间螺线:(圆柱螺线)x=acost , y=asint , z=bt ;(圆锥螺线)22 cos ,sin ,x t t y t t z t === 4、 椭球面sin cos ,sin sin ,cos ,02,0x a y b z c φθφθφθπφπ===≤<≤≤ 双叶双曲面3 tan cos ,tan sin ,sec ,02,22 x a y b z c π φθφθφθπφπ===≤<- << 双曲抛物面2 sec ,tan 2 u x au y bu z θθ=== 实验所用软件及版本:mathematica(3.0) 主要内容(要点): 1、 作出下列三维图形(球、环面) 2、 作出下列的墨西哥帽子 3、 作出球面、椭球面、双叶双曲面,单叶双曲面的图形 4、 试画出田螺上的一根螺线 5、 作出如图的马鞍面

《MATLAB与数值分析》第一次上机实验报告

电子科技大学电子工程学院标准实验报告(实验)课程名称MATLAB与数值分析 学生姓名:李培睿 学号:2013020904026 指导教师:程建

一、实验名称 《MATLAB与数值分析》第一次上机实验 二、实验目的 1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算 操作。(用.m文件和Matlab函数编写一个对给定矩阵进行运算操作的程序) 2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号 转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。(用.m文件编写进行符号因式分解和函数求反的程序) 3. 掌握Matlab函数的编写规范。 4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、 三维曲线和面的填充、三维等高线等。(用.m文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释) 5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。 三、实验内容 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x, y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 2. 编程实现奥运5环图,允许用户输入环的直径。 3. 实现对输入任意长度向量元素的冒泡排序的升序排列。不允许使用sort 函数。 四、实验数据及结果分析 题目一: ①在Editor窗口编写函数代码如下:

MATLAB实验报告50059

实验一MATLAB操作基础 实验目的和要求: 1、熟悉MATLAB的操作环境及基本操作方法。 2、掌握MATLAB的搜索路径及设置方法。 3、熟悉MATLAB帮助信息的查阅方法 实验内容: 1、建立自己的工作目录,再设置自己的工作目录设置到MA TLAB搜索路径下,再试 验用help命令能否查询到自己的工作目录。 2、在MA TLAB的操作环境下验证课本;例1-1至例1-4,总结MATLAB的特点。 例1-1

例1-2 例1-3 例1-4

3、利用帮助功能查询inv、plot、max、round等函数的功能。 4、完成下列操作: (1)在matlab命令窗口输入以下命令: x=0:pi/10:2*pi; y=sin(x); (2)在工作空间窗口选择变量y,再在工作空间窗口选择回绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形,并分析图形的含义。

5、访问mathworks公司的主页,查询有关MATLAB的产品信息。 主要教学环节的组织: 教师讲授实验目的、开发环境界面、演示实验过程,然后同学上机练习。 思考题: 1、如何启动与退出MA TLAB集成环境? 启动: (1)在windows桌面,单击任务栏上的开始按钮,选择‘所有程序’菜单项,然后选择MA TLAB程序组中的MA TLABR2008b程序选项,即可启动 MATLAB系统。 (2)在MA TLAB的安装路径中找到MA TLAB系统启动程序matlab.exe,然后运行它。 (3)在桌面上建立快捷方式后。双击快捷方式图标,启动MA TLAB。 退出: (1)在MA TLAB主窗口file菜单中选择exitMATLAB命令。 (2)在MA TLAB命令窗口中输入exit或quit命令。 (3)单击MATLAB主窗口的关闭按钮。 2、简述MATLAB的主要功能。 MATLAB是一种应用于科学计算领域的数学软件,它主要包括数值计算和符 号计算功能、绘图功能、编程语言功能以及应用工具箱的扩展功能。 3、如果一个MATLAB命令包含的字符很多,需要分成多行输入,该如何处理?

MATLAB实验报告

MATLAB程序设计语言 实 验 报 告 专业及班级:电子信息工程 姓名:王伟 学号:1107050322 日期 2013年6月20日

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MATALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 程序代码: >> A=[1 2 3;4 5 6;7 8 9]; >> B=[9 8 7;6 5 4;3 2 1]; >> A*B ans =

30 24 18 84 69 54 138 114 90 >> A.*B ans = 9 16 21 24 25 24 21 16 9 两者结果不同 >> [m,n]=size(A) m = 3 n = 3 >> b=sum(A) b = 12 15 18 >> a=length(A) a = 3 >>max(A) ans =

matlab实验报告

MATLAB 数学实验报告 指导老师: 班级: 小组成员: 时间:201_/_/_

Matlab 第二次实验报告 小组成员: 1 题目:实验四,MATLAB 选择结构与应用实验 目的:掌握if 选择结构与程序流程控制,重点掌握break,return , pause语句的应用。 问题:问题1:验证“哥德巴赫猜想” ,即:任何一个正偶数(n>=6)均可表示为两个质数的和。要求编制一个函数程序,输入一个正偶数,返回两个质数的和。 问题分析:由用户输入一个大于6 的偶数,由input 语句实现。由if 判断语句判断是否输入的数据符合条件。再引用质数判断函数来找出两个质数,再向屏幕输出两个质数即可。 编程:function [z1,z2]=gede(n); n=input('please input n')

if n<6 disp('data error'); return end if mod(n,2)==0 for i=2:n/2 k=0; for j=2:sqrt(i) if mod(i,j)==0 k=k+1; end end for j=2:sqrt(n-i) if mod(n-i,j)==0 k=k+1; end end if k==0 fprintf('two numbers are') fprintf('%.0f,%.0f',i,n- i) break end

end end 结果分析 如上图,用户输入了大于6的偶数返回两个质数5和31,通过 不断试验,即可验证哥德巴赫猜想。 纪录:if判断语句与for循环语句联合嵌套使用可使程序结构更加明晰,更快的解决问题。 2题目:实验四,MATLAB选择结构与应用实验 目的:用matlab联系生活实际,解决一些生活中常见的实际问 题。

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2:

matlab实验报告

实验一小球做自由落体运动内容:一小球竖直方向做自由落体,并无损做往返运动。程序: theta=0:0.01:2*pi x=cos(theta) y=sin(theta) l=1 v=1 while l<10 for t=1:10 y=y+(-1)^l*v*t plot(x,y,[-1,1],[-56,2],'.') axis equal pause(0.1) end l=l+1 end 结果:

-50 -40 -30 -20 -10 收获:通过运用小球自由落体规律,及(-1)^n 来实现无损往 返运动! 实验二 旋转五角星 内容:一个五角星在圆内匀速旋转 程序:x=[2 2 2 2 2 2] y=[0 4/5*pi 8/5*pi 2/5*pi 6/5*pi 0] y1=2*sin(y) x1=2*cos(y) theta=0:4/5*pi:4*pi

x2=2*cos(theta) y2=2*sin(theta) plot(x,y,x1,y1,x2,y2) axis equal theta1=theta+pi/10 x2=2*cos(theta1) y2=2*sin(theta1) plot(x2,y2) axis equal theta=0:4/5*pi:4*pi for rot=pi/10:pi/10:2*pi x=2*cos(theta+rot) y=2*sin(theta+rot) plot(x,y) pause(0.1) end 结果:

-2 -1.5-1-0.500.51 1.52 -2-1.5-1-0.500.511.5 2 收获:通过theta1=theta+pi/10,我们可以实现五角星在圆内匀速 旋转! 实验三 转动的自行车 内容:一辆自行车在圆内匀速转动 程序:x=-4:0.08:4; y=sqrt(16-x.^2); theta1=-pi/2:0.01*pi:3*pi/2; x3=0.5*cos(theta1); y3=0.5*sin(theta1); theta=-pi/2+0.02*pi for k=1:100

参考答案Matlab实验报告

实验一 Matlab基础知识 一、实验目的: 1.熟悉启动和退出Matlab的方法。 2.熟悉Matlab命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握Matlab各种表达式的书写规则以及常用函数的使 用。 二、实验内容: 1.求[100,999]之间能被21整除的数的个数。(rem) 2.建立一个字符串向量,删除其中的大写字母。(find) 3.输入矩阵,并找出其中大于或等于5的元素。(find) 4.不采用循环的形式求出和式 63 1 2i i= ∑ 的数值解。(sum) 三、实验步骤: ●求[100,199]之间能被21整除的数的个数。(rem) 1.开始→程序→Matlab 2.输入命令: ?m=100:999; ?p=rem(m,21); ?q=sum(p==0) ans=43 ●建立一个字符串向量,删除其中的大写字母。(find) 1.输入命令:

?k=input('’,’s’); Eie48458DHUEI4778 ?f=find(k>=’A’&k<=’Z’); f=9 10 11 12 13 ?k(f)=[ ] K=eie484584778 ●输入矩阵,并找出其中大于或等于5的元素。(find) 1.输入命令: ?h=[4 8 10;3 6 9; 5 7 3]; ?[i,j]=find(h>=5) i=3 j=1 1 2 2 2 3 2 1 3 2 3 ●不采用循环的形式求出和式的数值解。(sum) 1.输入命令: ?w=1:63; ?q=sum(2.^w) q=1.8447e+019

实验二 Matlab 基本程序 一、 实验目的: 1. 熟悉Matlab 的环境与工作空间。 2. 熟悉M 文件与M 函数的编写与应用。 3. 熟悉Matlab 的控制语句。 4. 掌握if,switch,for 等语句的使用。 二、 实验内容: 1. 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 2. 编程完成,对输入的函数的百分制成绩进行等绩转换,90~100为优,80~89为良,70~79为中,60~69为及格。 3. 编写M 函数文件表示函数 ,并分别求x=12和56时的函数值。 4. 编程求分段函数 2226;03 56;0532 1;x x x x y x x x x x x x +-<≠=-+≤<≠≠-+且且及其它,并求输入x=[-5.0,-3.0,1.0,2.0,2.5,3.0,3.5]时的输出y 。 三、 实验步骤: 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 1. 打开Matlab ,新建M 文件 2. 输入命令: 51022-+x

MATLAB程序设计实验报告

MATLAB 程序设计实验报告 一、实验目的 1. 通过实验熟悉MATLAB 仿真软件的使用方法; 2. 掌握用MATLAB 对连续信号时域分析、频域分析和s 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 3. 掌握用MATLAB 对离散信号时域分析、频域分析和z 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 4. 通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。 二、实验设备 1. 计算机 : 2. MATLAB R2007a 仿真软件 三、实验原理 对系统的时域分析 信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。 (1)信号的相加和相乘:已知信号)(1t f 和)(2t f ,信号相加和相乘记为 )()(1t f t f =)(2t f +;)()(1 t f t f =)(2t f *。 (2)信号的微分和积分:对于连续时间信号,其微分运算是用diff 函数来完成的,其语句格式为:diff(function,’variable’,n),其中function 表示需要进行求导运算的信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。连续信号的积分运算用int 函数来完成,语句格式为:diff(function,’variable’,a,b),其中function 表示需要进行被积信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;a,b 为积分上、下限,a 和b 省略时为求不定积分。 (3)信号的平移、翻转和尺度变换 信号的平移包含信号的左移与右移,信号的翻转包含信号的倒相与折叠,平移和翻转信号不会改变信号)(t f 的面积和能量。信号的尺度变换是对信号)(t f 在时间轴上的变化,可使信号压缩或扩展。)(at f 将原波形压缩a 倍,)/(a t f 将原波形扩大a 倍。 ¥ 对系统频率特性的分析

matlab实验报告

实验报告 2. The Branching statements 一、实验目的: 1.To grasp the use of the branching statements; 2.To grasp the top-down program design technique. 二、实验内容及要求: 1.实验内容: 1).编写 MATLAB 语句计算 y(t)的值 (Write the MATLAB program required to calculate y(t) from the equation) ???<+≥+-=0 530 53)(2 2t t t t t y 已知 t 从-5到 5 每隔0.5取一次值。运用循环和选择语句进行计算。 (for values of t between -5 and 5 in steps of 0.5. Use loops and branches to perform this calculation.) 2).用向量算法解决练习 1, 比较这两个方案的耗时。 (tic ,toc 的命令可以帮助你完成的时间计算,请使用'help'函数)。 Rewrite the program 1 using vectorization and compare the consuming time of these two programs. (tic, toc commands can help you to finish the time calculation, please use the …help ? function). 2.实验要求: 在报告中要体现top-down design technique, 对于 3 要写出完整的设计过程。 三、设计思路: 1.用循环和选择语句进行计算: 1).定义自变量t :t=-5:0.5:5; 2).用循环语句实现对自变量的遍历。 3).用选择语句实现对自变量的判断,选择。 4).将选择语句置入循环语句中,则实现在遍历中对数据的选择,从而实现程序的功能。 2. 用向量法实现: 1).定义自变量t :t=-5:0.5:5; 2).用 b=t>=0 语句,将t>=0得数据选择出,再通过向量运算y(b)=-3*t(b).^2 + 5; 得出结果。 3).用取反运算,选择出剩下的数据,在进行向量运算,得出结果。 四、实验程序和结果 1.实验程序 实验程序:创建m 文件:y_t.m

matlab实验报告

Matlab实验报告 实验二图像处理 一、实验目的 (1)通过应用MA TLAB语言编程实现对图像的处理,进一步熟悉MATLAB软件的编程及应用; (2)通过实验进一步掌握图像处理的基本技术和方法。 二、实验内容及代码 ㈠.应用MA TLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换 首先,在matlab页面中的current directory下打开存放图像的文件夹。 1.显示各种图像 ⑴显示彩色图像: ①代码:>> mousetif=imread('tif.TIF'); >> image(mousetif) 显示截图: ②代码:>> mousetif=imread('tif.TIF'); >> imshow(mousetif) 显示截图:

③代码:mousetif=imread('tif.TIF'); subimage(mousetif) 显示截图: 显示截图:

⑵显示二值图像 ①代码:>> I=imread('单色bmp.bmp'); >> imagesc(I,[0 2]) 显示截图: ②代码:>> I=imread('单色bmp.bmp');

>> imshow(I,2) 显示截图: ③代码:>> I=imread('单色bmp.bmp'); >> subimage(I) 显示截图:

⑶显示灰度图像 ①代码:>> I1=imread('256bmp.bmp'); >> imagesc(I1,[0,256]) 显示截图: 代码:>> I1=imread('256bmp.bmp'); >> colormap(gray); >> subplot(1,2,1); >> imagesc(I1,[0,256]); >> title('灰度级为[0 256]的mouse.bmp图'); >> subplot(1,2,2); >> imagesc(I1,[0,64]); >> colormap(gray); >> title('灰度级为[0 64]的mouse.bmp图'); 显示截图:

MATLAB入门实验报告

MATLAB实验报告 题目:第一次实验报告 学生姓名: 学院: 专业班级: 学号: 年月

MATLAB第一次实验报告 ————入门第一次上机实验刘老师就MATLAB软件进行了 大致的讲解,并讲了如何建立M文件,定义函数数 组矩阵,如何绘图。先就老师讲解及自己学习的情 况做汇报。 一、建立M文件 <1>M文件建立方法: 1. 在MATLAB中,点:File→New →M-file 2. 在编辑窗口中输入程序内容 3. 点File →Save,存盘,M文件名必须与函数名 一致 <2>课上实例 例:定义函数f(x1,x2)=100(x2-x12)2+(1-x1)2 答:建立M文件:fun.m function f=fun(x) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2 如此便可以直接使用函数fun.m 例如计算f(1,2), 只需在MATLAB命令窗口键入命

令: x=[1 2] fun(x) 得f = 100. <3>课下作业 题目:有一函数,写一程序,输入自变量的值,输出函数值. 解答:建立M文件:zuoye1.m function f=zuoye1(x,y) f=x^2+sin(x*y)+2*y 命令行输入x=1,y=1 zuoye1(x,y) 得ans = 3.8415 经验算答案正确,所以程序正确。

二、定义数组、矩阵 <1>说明 逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter 键也表示开始新一行. 输入矩阵时,严格要求所有行有相同的列 <2>课后作业 题目:有一个4x5矩阵,编程求出其最大值及其所处的位置. 解答:a=round(10*rand (4,5)) [temp I]=max(a) [am II]=max(temp) p=[I(II) II] 运行得一随机矩阵 a = 7 7 7 3 7 0 8 2 0 3 8 7 7 1 10 9 4 0 8 0 temp =

MATLAB程序设计实验报告

MATLAB实验报告 一、实验名称 实验4图形绘制(1) 二、实验目的: 熟悉和掌握MA TLAB基本的二维图形绘制函数。 三、实验内容: 1.绘制简单的二维图形 2.一个坐标系绘制多幅图形 3.图形标识和坐标控制 4.交互式图形指令 四、回答问题: (本次实验未预留问题) 五、遇到的问题及解决: 遇到了求y=lnx时,输入“y=ln(x)”不被软件识别的问题,查看常用数学函数表后改为y=log(x)成功解决。 在求10x时不知道用什么函数,函数表里也查不到,在老师的点拨下用“y=10.^x”解决。 在绘图时发现默认线型不够明显,查表后使用尖三角、叉号代替默认线型。 六、体会: 本次实验我学会了利用MATLAB绘制图形的基本方法,以及相应的备注方法。 难点是了解各种函数的具体作用并熟练掌握。 体会是:多学多练,孰能生巧,日积月累,必有提高。

思考题: 1.在同一坐标系绘制t3,-t2,t2sint在[0,2π]内的曲线图。 x=0:pi/50:2*pi; y1=t.*t.*t; y2=-t.*t; y3=t.*t.*sin(t); plot(t,y1,'^k',t,y2,'.k',t,y3,'xk'); legend('\ity=t^3','\ity=-t^2','\itt^2*sint'); 2.在一幅图中画出4幅子图,分别绘制sin2x,tanx,lnx,10x的图形,并加上适当的图形注释。注意:把函数变成MATLAB对应的形式。 x=0:pi/50:2*pi; y1=sin(2*t); y2=tan(x); y3=log(x); y4=10.^x; subplot(2,2,1) plot(x,y1); legend('y=sin2x'); subplot(2,2,2) plot(x,y2) legend('y=tanx'); subplot(2,2,3) plot(x,y3)

南华大学MATLAB实验报告4

实验报告 实验项目名称MATLAB绘图 所属课程名称MATLAB及应用 实验类型上机实验 实验日期 指导教师 班级 学号 姓名 成绩

一、实验名称 MATLAB绘图 二、实验目的 (1)掌握绘制二维图形的常用函数。 (2)掌握绘制三维图形的常用函数。 (3)掌握绘制图形的辅助操作 三、实验原理 1. 绘制二维图形的常用函数 plot函数绘制二维曲线,常用格式有: plot(x):缺省自变量的绘图格式,x可为向量或矩阵。 plot(x, y):基本格式,x和y可为向量或矩阵。 plot(x1, y1, x2, y2,…):多条曲线绘图格式,在同一坐标系中绘制多个图形。 plot(x, y, ‘s’):开关格式,开关量字符串s设定了图形曲线的颜色、线型及标示符号。 2. 绘制三维图形的常用函数 (1)三维曲线图——plot3函数 plot3(x1, y1, z1, 's1', x2, y2, z2, 's2'…) (2)三维网格图——mesh函数为数据点绘制网格线: mesh(z) —— z为n×m的矩阵,x与y坐标为元素的下标位置 mesh(x, y, z) —— x, y, z分别为三维空间的坐标位置 (3)三维曲面图——由surf函数完成的,用法和mesh类似。 3. 绘制图形的辅助操作 title ——给图形加标题 xlable ——给x轴加标注 ylable ——给y轴加标注 text ——在图形指定的任意位置加标注 gtext ——利用鼠标将标注加到图形任意位置 grid on ——打开坐标网格线

grid off ——关闭坐标网格线 legend —— 添加图例 axis —— 控制坐标轴刻度 4. 特殊坐标系 极坐标图形—— polar(theta,rho(i,:)) 四、实验内容 1、绘制23sin(23)26 t y t e π-=+和它的导数在[0,4π]的曲线,并用适当的字体、大小标注其x 轴、y 轴及其函数。 2、采用两种不同方法绘制224y x xe z --=在]3,3[,-∈y x 的三维(透视)网格曲 面。(提示:ezmesh; mesh; hidden ) 3、绘制下列极坐标图形 r=3(1-cos θ) r=2(1+cos θ) r=2(1+sin θ) r=cos3 θ r=exp(4π θ) 4、在同一坐标内,分别用不同线型和颜色绘制曲线0.510.2cos4x y e x π-= 和0.522cos x y e x π-=,标记两曲线交叉点。 五、实验过程及结果(含源代码) 1.>>t=0:0.01:4*pi; y=(sqrt(3)/2)*exp(-2*t)*sin(2*sqrt(3)+pi/6); diff_y=diff(y);

MATLAB基础及其应用教程周开利邓春晖课后答案

第三章习题及参考答案 解答: >> p=[1 -1 -1]; >> roots(p) ans = -0.6180 1.6180 解答: 取n=5,m=61 >> x=linspace(0,2*pi,5); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on

分段线性和三次样条插值方法与精确值之差取n=11,m=61 >> x=linspace(0,2*pi,11); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on 分段线性和三次样条插值方法与精确值之差

解答: >> x=[0,300,600,1000,1500,2000]; >> y=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491]; >> xi=0:100:2000; >> y0=1.0332*exp(-(xi+500)/7756); >> y1=interp1(x,y,xi,'spline'); >> p3=polyfit(x,y,3); >> y3=polyval(p3,xi); >> subplot(2,1,1);plot(xi,y0,'o',xi,y1,xi,y3,'-.'); >> subplot(2,1,2);plot(xi,y1-y0,xi,y3-y0);grid on 插值和拟合方法相比较,都合理,误差也相近。 解答: 梯形法积分 >> x=-3:0.01:3;

《MATLAB及应用》实验报告2

核科学技术学院 实验报告 实验项目名称MATLAB符号计算 所属课程名称MATLAB及应用 实验类型上机实验 实验日期12月日 指导教师谢芹 班级 学号 姓名 成绩 一、实验名称 MATLAB符号计算 二、实验目的

(1)掌握定义符号对象的方法 (2)掌握符号表达式的运算法则以及符号矩阵运算 (3)掌握求符号函数极限及导数的方法 (4)掌握求符号函数定积分和不定积分的方法 三、实验原理 1. 函数极限及导数的方法 (1)函数极限:limit(F,x,a) 求符号函数f(x)的极限值。即计算当变量x趋近于常数a时,f(x)函数的极限值。 (2)limit(f):求符号函数f(x)的极限值。符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。 (3)limit(f,x,a,'right'):求符号函数f的极限值。'right'表示变量x从右边趋近于a。 (4)limit(f,x,a,‘left’):求符号函数f的极限值。‘left’表示变量x从左边趋近于a。 2. 微分: diff(s):没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。 diff(s,'v'):以v为自变量,对符号表达式s求一阶导数。 diff(s,n):按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。 diff(s,'v',n):以v为自变量,对符号表达式s求n阶导数。 3. 函数定积分和不定积分的方法: int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。 int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分。 int(s,v,a,b):求定积分运算。a,b分别表示定积分的下限和上限。 梯形法:trapz(x,y):x为分割点构成的向量,y为被积函数在分割点上的函数值构成的向量; 抛物线法:quad(f,a,b,tol),f是被积函数,[a,b]是积分区间,tol是精度。

matlab基础与应用教程答案

8-1建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标左键之后显示出Left Button Pressed 字样。 本体程序: clc; hf=figure('color','r','windowbuttondownfcn','axis off;text(0.1,0.5,''Left Button Pressed'',''fontsize'',30)') 运行结果: hf = 1 8-3利用图形对象绘制下列曲线,要求先利用默认属性绘制曲线,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。 (1)2)cos(2.0+=-x e y x clc; x=0:5*pi; y=exp(-0.2*x).*cos(x)+2; h=plot(x,y); set(h,'Color',[1,0,0],'LineStyle',':','LineWidth',2);

(2)?????==325t y t x 程序: t=0:2:100; x=t.*t; y=5*t.^3; hf=plot(x,y); set(hf,'color','b','linestyle',':','marker','p','linewidth',0.3);

8-4利用图形对象绘制下列三维图形,要求与上题相同。 (1)?? ???===t z t y t x sin cos 程序: t=0:0.1:2*pi; x=cos(t); y=sin(t); z=t; hf=plot3(x,y,z); 运行结果:

8-5以任意位置子图形式绘制出正弦、余弦、正切和余切函数曲线。clc; x=-2*pi:0.01:2*pi; y1=sin(x); y2=cos(x); axes('Position',[0.1,0.6,0.2,0.2]) plot(x,y1); ht=get(gca,'Title');set(ht,'Color','r');title('y=sin(x)') hc=get(gca,'Children'),set(hc,'Color','b','LineWidth',1.5) axes('Position',[0.6,0.6,0.2,0.2]) plot(x,y2,'r'); ht=get(gca,'Title');set(ht,'Color','r');title('y=cos(x)') axes('Position',[0.1,0.1,0.2,0.2]) fplot('tan(x)',[-1.5,1.5]); ht=get(gca,'Title');set(ht,'Color','r');title('y=tan(x)') axes('Position',[0.6,0.1,0.2,0.2]) fplot('cot(x)',[0,1,3]); ht=get(gca,'Title');set(ht,'Color','r');title('y=cot(x)')

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 为符号变量,()421f x x x =++,()32458g x x x x =+++,试进行如下运算: (1)()()f x g x + (2)()()f x g x ? (3)求()g x 的反函数 (4)求g 以()f x 为自变量的复合函数

Matlab上机实验报告

20140110170124 14级测绘工程1班齐新煜 Matlab基础运用实验报告(一) MATLAB在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。 软件安装 1.安装出错时,可换注册码继续安装,到同一目录; 2.【谨记】安装路径不要有中文名称; 3.成功安装完毕之后,如果遇到matlab启动后,窗口在打开一到两秒后就自动关闭了,可按以下方法试试:【假设你安装的目录为c:\MATLAB\】(不过不建议安装到C盘,那样会影响系统速度!) 4.确认安装好后,在此路径下c:\MATLAB\bin\win32有一个名为atlas_Athlon.dll的文件;

5.我的电脑上右击点"属性",再在"高级"中点"环境变量",在"系统变量"中点击 "新建" 输入以下信息:变量名:BLAS_VERSION 变量址: c:\MATLAB\bin\win32\atlas_Athlon.dll 6.安装MATLAB成功! 实验结语 MATLAB在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。 Matlab基础运用实验报告(二) 一、实验目的 1.了解MATLAB程序设计语言的基本特点,熟悉MATLAB软件的运行环境;

MATLAB数学实验报告

Matlab 数学实验报告

一、实验目的 通过以下四组实验,熟悉MATLAB的编程技巧,学会运用MATLAB的一些主要功能、命令,通过建立数学模型解决理论或实际问题。了解诸如分岔、混沌等概念、学会建立Malthu模型和Logistic 模型、懂得最小二乘法、线性规划等基本思想。 二、实验内容 2.1实验题目一 2.1.1实验问题 Feigenbaum曾对超越函数y=λsin(πx)(λ为非负实数)进行了分岔与混沌的研究,试进行迭代格式x k+1=λsin(πx k),做出相应的Feigenbaum图 2.1.2程序设计 clear;clf; axis([0,4,0,4]); hold on for r=0:0.3:3.9 x=[0.1]; for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.5) for i=101:150

plot(r,x(i),'k.'); end text(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end 加密迭代后 clear;clf; axis([0,4,0,4]); hold on for r=0:0.005:3.9 x=[0.1];

for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.1) for i=101:150 plot(r,x(i),'k.'); end end 运行后得到Feigenbaum图

2.2实验题目二 2.2.1实验问题 某农夫有一个半径10米的圆形牛栏,长满了草。他要将一头牛拴在牛栏边界的桩栏上,但只让牛吃到一半草,问拴牛鼻子的绳子应为多长? 2.2.2问题分析 如图所示,E为圆ABD的圆心,AB为拴牛的绳子,圆ABD为草场,区域ABCD为牛能到达的区域。问题要求区域ABCD等于圆ABC的一半,可以设BC等于x,只要求出∠a和∠b就能求出所求面积。先计算扇形ABCD的面积,2a÷π×πx2=2aπ2,再求AB的面积,用扇形ABE的面积减去三角形ABE的面积即可。

相关文档
最新文档