matlab上机习题详解_试题答案

matlab上机习题详解_试题答案
matlab上机习题详解_试题答案

P 第一次实验答案

1. 设

要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。 clc clear

x=0:0.01:1.5;

y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3)

y1=diff(y) subplot(2,1,1) plot(x,y)

subplot(2,1,2) plot(x(1:150),y1)

2绘制极坐标系下曲线(a,b,n 自定数据)

clc clear a=10; b=pi/2; n=5;

theta=0:pi/100:2*pi; rho=a*cos(b+n*theta); polar(theta,rho)

3. 列出求下列空间曲面交线的程序

clc clear

x=[-5:0.5:5];

[X,Y]=meshgrid(x); z1=X.^2-2*Y.^2;

z2=X.*2-Y.*3; xlabel('x') ylabel('y') zlabel('z') surf(X,Y,z1) hold on

surf(X,Y,z2)

k=find(abs(z1-z2)<0.5); x1=X(k) y1=Y(k)

z3=x1.^2-2*y1.^2 hold on

plot3(x1,y1,z3,'*')

4、设 ???

??

?++=)1(sin 35.0cos 2x x x y 把x=0~2π间分为101点,画出以x 为横坐标,y

为纵坐标的曲线,要求有图形标注。

clc clear

x=-2*pi:0.1: 2*pi;

y=cos(x).*(0.5+sin(x)*3./(1+x.^2)); plot(x,y,'b*-'); title('绘图'); xlabel('x 坐标'); ylabel('y 坐标'); legend('原函数')

gtext('y=cos(x)(0.5+3*sin(x)/(1+x^2))')

5、求下列联立方程的解 8102569

583

2475412743-=+-+-=-+-=++-=--+w z y x w z x w z y x w z y x

clc clear

a=[3,4,-7,-12;5,-7,4,2;1,0,8,-5;-6,5,-2,10];

b=[4,-3,9,-8]; c=b/a; x=c(1,1) y=c(1,2) z=c(1,3) w=c(1,4)

6. 假设一曲线数据点为

x = 0:2:4*pi;

y = sin(x).*exp(-x/5);

试将x 的间距调成 0.1,采用不同插值方法进行插值,并通过子图的形式将不同插值结果和原始数据点绘制在同一图形窗口。 clc clear

x=0:2:4*pi;

y=sin(x).*exp(-x./5); x1=0:0.1:4*pi;

y01=interp1(x,y,x1,'spline'); y02=interp1(x,y,x1,'cubic'); y03=interp1(x,y,x1,'nearest'); y04=interp1(x,y,x1); subplot(3,2,1); plot(x,y,'o-'); title('?-oˉêy'); subplot(3,2,2); plot(x1,y01,'gx-'); title('spline'); subplot(3,2,3); plot(x1,y02,'m+-'); title('cubic'); subplot(3,2,4); plot(x1,y03,'r*-'); title('nearest'); subplot(3,2,5); plot(x1,y04,'kd-'); title('line');

???

?

?+?=-334sin 234πt e y t ()θρn b a +=cos 2

212y x z -=y x z 322-=

第二次试验答案

1、编制m文件,等待键盘输入,输入密码

20120520,密码正确,显示输入密码正确,程序结束;否则提示,重新输入。

clear

a=input('输入密码:')

while a~=20120520

disp('密码错误,请重新输入:')

clear

a=input('输入密码:')

end

if a==20120520

disp('密码输入正确!')

end

2、编写一个函数实现以下功能:

a. 若没有实参输入变量,则用蓝色实线画出

半径为1的圆;

b.若有两个实参输入变量N,R,则用蓝色实

线画出外接半径为R的正N多边形;

d. 若有两个实参输出变量,则分别输出正多

边形的面积S和周长L。

g. 如果输入变量多于三个或输出变量多于两

个则给出错误提示信息。

(提示:外接半径为R的正N多边形参数式:t=0:2*pi/N:2*pi;x=R*sin(t);y=R*cos(t)当N ≥100时,可看作是半径为R的圆)

function [S,L]=shiyan22(N,R,str)

switch nargin

case 0

N=100;R=1;str='-b';

case 1

R=1;str='-b';

case 2 str='-b';

case 3

;

otherwise

error('输入量太多。');

end;

t=0:2*pi/N:2*pi;

x=R*sin(t);y=R*cos(t);

if nargout==0

plot(x,y,str);

elseif nargout>2

error('输入量太多。');

else

S=N*R*R*sin(2*pi/N)/2;

L=2*N*R*sin(pi/N);

plot(x,y,str)

end

axis equal square

box on

3、编写一个学生成绩管理的程序,完成下列功能:

(1) 构造一个学生结构,包括学生的姓名,课

程名称(限M门),考试成绩和平均值等域;

(2) 从键盘上,连续输入N个学生的情况,分

别将这些学生的情况填入到相应的域,若域中

没有值即为空或0,并分别计算其平均值写入

到其平均值域。

(3) 根据平均值排序(由高到低),并输出学

生的姓名和平均值。

clc

clear

n=input('please input students number:'); for x=1:n

number(x)=struct('name','','Curriculum1','' ,'Curriculum2','','Curriculum3','','Average ','');

end

for i=1:n

number(i).name=input('name:','s');

number(i).Curriculum1=input('please

input the scores\nCurriculum1:');

number(i).Curriculum2=input('Curriculum2:') ;

number(i).Curriculum3=input('Curriculum3:') ;

number(i).Average=(number(i).Curriculum1+nu mber(i).Curriculum2+number(i).Curriculum3)/ 3;

disp('the average is:')

disp(num2str(number(i).Average))

end

NameCell=cell(1,n);

Array=[1,n];

for i=1:n

NameCell(1,i)={number(i).name};

Array(i)=number(i).Average;

end

for j=1:(n-1)

iptr = j;

for i=(j+1):n

if Array(i)>Array(iptr) %比较相邻前后大小?

iptr=i;

end

end

if j~=iptr %若后面比前面大,互换

Name=NameCell(1,i);

NameCell(1,i)=NameCell(1,j);

NameCell(1,j)=Name;

average=Array(i);

Array(i)=Array(j);

Array(j)=average;

j=1;

iptr=j;

end

end

disp('成绩排序如下:')

for i=1:n

disp(strcat('名次: ',num2str(i),' 名字

',NameCell(1,i),' 平均成绩:

',num2str(Array(i))))

end

4、使用句柄图像对象绘制曲线:y=2e-0.5x cos(π

x),同时对曲线进行标注和修饰。

x=-12:0.02:12

y=2*exp((-0.5)*x).*cos(pi*x)

h_f=figure('Position',[200 300 300

300],'menubar','none')

h_a1=axes('position',[0.1,0.1,.8,.8])

h_t=title(h_a1,'函数

=2*exp((-0.5)*x).*cos(pi*x)')

h_1=line(x,y)

set(gca,'xtick',[(-6)*pi (-4)*pi (-2)*pi 0 (2)*pi (4)*pi (6)*pi])

set(gca,'xticklabel',{'(-6)*pi',' (-4)*pi', '(-2)*pi', '0', '(2)*pi', '(4)*pi','(6)pi'}) set(gca,'xgrid','on','ygrid','on')set(h_1,'linewidth',2)

set(get(h_t,'parent'),'color','y')

h_anm1=annotation(gcf,'rectangle',[0.1

0.5 .8

0.4],'FaceAlpha',.7,'FaceColor','red')

第三次试验答案

1、做一个带按钮的界面,当按动“播放”按

钮时调入声音文件并播放,显示声音波形,并

建立一个用于关闭界面的按钮对象。(提示,

找一个.wav文件,简单起见可以在windows

目录下找一个文件,将其放在当前工作目录下

或搜索路径上。具体用法请参照:

[y,f,b]=wavread(*.wav'); % 读入声音文

sound(y,f,b) % 由声卡播放

声音

plot(y) % 画出波形

2、创建一个用于绘图参数选择的菜单对象,

其中包含三个选项LineStyle、Marker和Color,每个选项下面又包含若干的子项分别可以进

行选择图线的类型、标记点的类型和颜色(每

个子项不少于3个),当按下“绘图”按钮时,根据选项绘制正弦曲线(缺省时为蓝色无标记

实线)。(注意使用全球变量)

function varargout = shiyan32(varargin)

% SHIYAN32 MATLAB code for shiyan32.fig

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

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

'gui_Singleton',

gui_Singleton, ...

'gui_OpeningFcn',

@shiyan32_OpeningFcn, ...

'gui_OutputFcn',

@shiyan32_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 shiyan32 is made visible.

function shiyan32_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

shiyan32 (see VARARGIN)

% Choose default command line output for shiyan32

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

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

% uiwait(handles.figure1);

global c

c='b'

global l

l='-'

global m

m=' '

% --- Outputs from this function are returned to the command line.

function varargout =

shiyan32_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;

%

--------------------------------------------------------------------

function Untitled_1_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global l

%

--------------------------------------------------------------------

function Untitled_8_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global m

%

--------------------------------------------------------------------

function color_Callback(hObject, eventdata, handles)

% hObject handle to color (see GCBO)

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

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

global c

%

--------------------------------------------------------------------

function Untitled_14_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_14 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global c

c='r'

%

--------------------------------------------------------------------

function Untitled_15_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global c

c='b'

%

--------------------------------------------------------------------

function Untitled_16_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global c

c='g'

%

--------------------------------------------------------------------

function Untitled_17_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global c

c='y'

%

--------------------------------------------------------------------

function Untitled_10_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global m

m='o'

%

--------------------------------------------------------------------

function Untitled_11_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_11 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global m

m='*'

%

--------------------------------------------------------------------

function Untitled_13_Callback(hObject, eventdata, handles)

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

global m

m='d'

%

--------------------------------------------------------------------

function Untitled_4_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global l

l='-'

%

--------------------------------------------------------------------

function Untitled_5_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global l

l='--'

%

--------------------------------------------------------------------

function Untitled_7_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

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

global l

l='-.'

% --- 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)

global s

global l

global m

global c

x=0:0.1:2*pi;

y=sin(x);

s=strcat(l,m,c); plot(x,y,s)

2. 设1010)(?=j i a A 和1010)(?=j i b B

是两个10行10列

的矩阵(数组),试说明命令A*B, A/B, A\B, A .*(B.^A), A ./B, A .\B 和sin(A).*exp(B)的涵义。 A,B 的矩阵乘法,矩阵A 乘以B 的逆,矩阵B 乘以A 的逆,B 的每个元素的对应A 次幂乘以A 对应的每个元素 A 的每个元素除以B 对应的每个元素,B 的每个元素除以A 对应的每个元素,

A 的每个元素的正弦与

B 对应的每个元素的指数求积,

3. 设A 为1417?数组,B 为一个行数大于3的数组,请给出

(1)删除A 的第4、8、12三列的命令; (2)删除B 的倒数第3行的命令; (3)求符号极限0tan()

lim

x mx nx

→的命令集; (4)求

23

arctan

ln(1)2

x x y e x -+=-+-的3阶导数的命令集;

(5)计算定积分

1

21

(sin )x x x dx -+?

的命令,并给出计算结果

(!)A(:,[4 8 12])=[]

(2)B(end-2)=[] (3)syms m n x

limit(tan(m*x)/(n*x)) (4)syms x y

y=atan((x+3)/(x-2))-log(1+exp((-2)*x) diff(y,3) (5)syms x

int((abs(x)+sin(x))*x^2,-1,1)

三.基本编程题(每小题10分,共1. Write a program to compute the following expressions

10

()()

,,1,2,,10

ik

i jk j ij x

x x x r i j --=

=∑L ;

Here, we suppose the variable x has existed in the workspace.

for i=1:10 for j=1:10

xbar(i)=xbar(i)+x(i,j); end

xbar(i)=xbar(i)/10;

end

for i=1:10 for j=1:10

t1=0;t2=0;t3=0; for k=1:3

t1=t1+(x(i,k)-xbar(i))*(x(j,k)-xbar(j)); t2=t2+(x(i,k)-xbar(i))^2; t3=t3+(x(j,k)-xbar(j))^2; end

r2(i,j)=t1/sqrt(t2*t3); end end r2

2. (1) Using plot() function to plot the curves of

2[sin(2)cos3]e x y x x -=+ and sin x

z x

=

in the range of []2,

2x ππ∈-, let their color are red and

green respectively, and add the grid to the figure.

(2) Using fplot() function and ezplot() function to plot above-mentioned (上述的) curves respectively. (1)x=-2*pi:pi/100:2*pi;

y=(sin(2*x)+cos(3*x)).*exp(-2*x); z=sin(x)/x;

plot(x,y,’r ’,x,z,’g ’) (2)fplot('[(sin(2*x)+cos(3*x)).*exp(-2*x), sin(x)/x]',[-2*pi 2*pi])

3. Plot the 3D mesh figure and 3D surface figure of the function

2

2

2/2(1)(,)9(1)e x

y f x y x --+=-

in the range of 44x -≤≤ and 44y -≤≤, respectively. x=-4:1/100:4; y=-4:1/100:4;

z=9(1-x)^2*exp(-x ’^2/2-(y ’+1)^2) mesh(x,y,z); surf(x,y,z); 四.综合编程题(每小题11分,

1. Write a function program to compute the following function

1.8

|2|!,

()f1(x)34sin(2),i x i x x =?=?+?

整数其他

and call this function program to compute the value of y=f1(-4)+f1(3)-f1(14.37) in main program or command window, there, ||!i shows the factorial (阶乘) of

||i .

提示:对x 取整的函数有fix(x), floor(x), round(x) 和ceil(x) .

fuction y=f1(x) %f1.m

if x-fix(x)= =0 y=prod(1:abs(2*x)); else

y=4*sin(2*x)+x^1.8; y=f1(-4)+f1(3)-f1(14.37)

2.Write a program to compute the sample mean

1

1xbar ==n

i i x x n =∑,

and the sample skewness (偏度)

31

1ske ()n

i i x x n ==-∑ .

for the following three case: (1) n and

],,,[21n x x x x Λ= exist in Workspace of

Matlab. It is no any limit;

(2) n and ],,,[21n x x x x Λ= are unknown variables. Please input x by keyboard one by one, and give a mark of end the data input. Examinees can use loop statement and length() function and input() function, but cannot use mean() function, std() function, and var() function directly (可以使用循环语句和length()函数、input()函数等进行编程,但不能直接使用mean()、std()和var()等函数). (1)s=0; for i=1:n s=s+x(i); end

xbar=s/n m=0;

for i=1:n

m=m+(x(i)-xbar)^3; end

ske=m/n

(2)x(1)=input('请输入x '); i=1;s=0;

while(x(i)~='a') s=s+x(i); i=i+1;

x(i)=input('请输入x ,输’a ’结束'); end

xbar=s/(i-1) m=0;

for j=1:i-1

m=m+(x(i)-xbar)^3; end

ske=m/(i-1)

一、填空题

1、MA TLAB 常用操作界面包括 命令窗口 、工作空间窗口、 命令历史窗口 、当前目录窗口 、内

存数组编辑器、M 文件编辑/调试器、帮助导航/浏览器、图形窗口等。

2、MA TLAB 中Inf 或inf 表示 无穷大 、NaN 或nan 表示 不是一个数 、nargout 表示 函数输出变量数目 。

3、工作空间浏览器主要用于内存变量的 查阅 、 保持 和 编辑 。

4、MATLAB 实现将全下标转换为单下标的指令为 sub2ind 、据单下标换算出全下标的指令为 ind2sub 。

5、MA TLAB 中clf 用于 清除图形窗口 、clc 用于 清除指令窗口中显示内容 、clear 用于 清除MATLAB 工作空间中保存的变量 。

二、简答题(每题5分,共20分)

1、简述MATLAB 历史指令窗的主要作用。

答:历史指令窗记录着用户在MATLAB 指令窗中所输入过的所有指令。历史记录包括:每次开启MA TLAB 的时间,每次开启MA TLAB 后在指令窗中运行过的所有指令。应用功能有单行或多行指令的复制和运行、生成M 文件等。

2、简述MATLAB 函数的基本结构。

答:典型M 函数文件的结构:函数申明行、H1行、在线帮助文本区、编写和修改记录、函数体。

3、简述绘制二维图形的一般步骤。

绘制二维图形的一般步骤为:曲线数据准备、选定图形窗及子图位置、调用二维曲线绘图指令、设置轴的范围、坐标分格线、图形注释、图形的精细操作。

三、阅读程序并回答问题(每题4分,共28分) 1、写出下列指令运行结果。 A=zeros(2,4); A(:)=1:8;

s=[2 3 5]; A(s)

Sa=[10 20 30]'

A(s)=Sa ans =

2 3 5 Sa = 10 20 30 A =

1 20 30 7 10 4 6 8

2、写出下列指令运行结果。 A=reshape(1:16,2,8) reshape(A,4,4)

s=[1 3 6 8 9 11 14 16];

A(s)=0 A =

1 3 5 7 9 11 13 15

2 4 6 8 10 12 14 16

ans =

1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16

A =

0 0 5 7 0 0 13 15

2 4 0 0 10 12 0 0

3、写出下列指令运行结果。

A=[1,2;3,4];

B=[-1,-2;2,1];

S=3;

A.*B

ans =

-1 -4

6 4

A*B

ans =

3 0

5 -2

S.*A

ans =

3 6

9 12

S*B

ans =

-3 -6

6 3

4、下面的函数主要完成什么功能?

function f=factor(n)

if n<=1

f=1;

else

f=factor(n-1)*n;

end

利用函数的递归调用求n!

5、写出下列指令运行结果。

c h=‘ABc123d4e56Fg9’;

subch=ch(1:5)

revch=ch(end:-1:1)

k=find(ch>=‘a’&ch<=‘z’);

ch(k)=ch(k)-(‘a’-‘A’);

char(ch)

subch =

ABc12

revch =

9gF65e4d321cBA

ans =

ABC123D4E56FG9

ans =

4

6、写出下列指令运行结果。

A(1,1)={'this is cell'};

A{1,2}={[1 2 3;4 5 6]};

A{2,1}=[1+2*i];

A{2,2}=A{1,2}{1}+(A{1,2}{1}(1,1)+A{1,2}{1}(2,2));

celldisp(A)

A{1,1} =

this is cell

A{2,1} =

1.0000 +

2.0000i

A{1,2}{1} =

1 2 3

4 5 6

A{2,2} =

7 8 9

10 11 12

7、下面的程序完成功能是什么?

t=0:pi/50:4*pi;

y0=exp(-t/3);

y=exp(-t/3).*sin(3*t);

plot(t,y,'-r',t,y0,':b',t,-y0,':b')

xlabel(‘\bf\it t’);

ylabel(‘\bf\it y’);

grid on;

绘制图形如下:

四、编程题(32分)

1、用命令来创建GUI并绘制方程y=ax2+bx+c图形,需要显示绘图结果的坐标系窗口,还能输入a、b、c的值和x的取值范围,同时用命令设置所以对象的属性。

2、在同一图上分别用红色实线和绿色虚线绘制

y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及建立图例。(5分)x=0:0.01:4*pi;

y1=sin(x);

y2=cos(x);

z=find(abs(y1-y2)<0.007);

plot(x,y1,'r.-','Linewidth',2,'Markersize',1);

axis([-1.5,15,-1.5,1.5]);

hold on

plot (x,y2,'g.:','Linewidth',2,'Markersize',1);

n=size(z);

plot(x(z),y1(z),'k*','Markersize',15);

3、某商场对顾客所购买的商品实行打折销售,

标准如下(商品价格用price来表示):

price<200 没有折扣

200≤price<500 3%折扣

500≤price<1000 5%折扣

1000≤price<2500 8%折扣

2500≤price<5000 10%折扣

5000≤price 14%折扣

输入所售商品的价格,求其实际销售价格。(5分)

price=input('please input your price:');

a=0;

if price<200

a=1;

elseif price<500

a=2;

elseif price<1000

a=3;

elseif price<2500

a=4;

elseif price<5000 a=5; else a=6; end

switch a case 0

disp('0 inputs given'); case 1

b=price; case 2

b=0.97*price; case 3

b=0.95*price; case 4

b=0.92*price; case 5

b=0.90*price; case 6

b=0.86*price; otherwise

disp('unexpected input!'); end

fprintf('the actaul price is %f',b);

4、二阶微分方程x"+0.2x'+0.4x=0.2u (t), 其中u(t)是单位阶跃函数,试建立系统模型并仿真。

1. 请编写一个M-函数,用来实现级数和

1

253132-+++++=n x x x x S n

Λ

并利用该M-函数计算n = 学号末2位数+5,x = n/60时S

的值。 1.

function s=zh(x,n)

if nargin>2,error('wrong');end if nargout>1,error('wrong');end ss=1;

for t=1:n,ss=ss+(x^t)./(2*t-1); s=ss;end

>> zh(35/60,35)

ans =

1.7677

2. 已知系统的框图如下图所示,请推导出从输入信号r(t)

到输出信号y(t)的总系统模型。 2.

syms G1 G2 G3 G4 G5 G6 G7 H1 H2 H3 H4 c1=feedback(G4,H4); c2=feedback(G3*G2,H2); c3=feedback(G5*c1,H3);

G=feedback((G6+G7)*c3*c2*G1,H1)

3. 已知单位负反馈控制系统的被控对象及控制器的传递函数分别为

)

20/1)(5.0/1()

5.2/1(16)(s s s s s G +++=

, )23)(5.1()2)(1(20)(++++=s s s s s Gc 试判断系统的稳定性,并用时域响应检验得出的结论。 >> s=tf('s')

Transfer function: s

>> Gs=16*(1+s/2.5)/[s*(1+s/0.5)*(1+s/20)]

Transfer function: 6.4 s + 16 ---------------------- 0.1 s^3 + 2.05 s^2 + s

>> Gc=20*(s+1)*(s+2)/[(s+1.5)*(s+23)]

Transfer function: 20 s^2 + 60 s + 40 ------------------- s^2 + 24.5 s + 34.5

>> GG=feedback(Gs*Gc,1)

Transfer function:

128 s^3 + 704 s^2 + 1216 s + 640 --------------------------------------------------------

0.1 s^5 + 4.5 s^4 + 182.7 s^3 + 799.2 s^2 + 1251 s + 640

>> eig(GG)

ans =

-20.1421 +34.9785i -20.1421 -34.9785i -1.8264 + 0.5997i -1.8264 - 0.5997i -1.0630

根都有负实部 则系统稳定

>> step(GG ,1)

4. 考虑简单的线性微分方程

)2sin(2413453''')3()4(t e e y y y y y t t --+=++++,

且方程的初值为y(0)=1,y ’(0)=y ”(0)=1/2,y (3)(0)=0.6,,请

用Simulink 搭建起系统的仿真模型,并绘制出仿真结果曲线。

2.6 求??

?

?

??+-+-+-+-++=i 44i 93i 49i 67i 23i 57i 41i 72i 53i 84x 的共轭转置。

>> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i];

>> x’ ans =

4.0000 - 8.0000i 3.0000 - 2.0000i 3.0000 -

5.0000i 7.0000 +

6.0000i 2.0000 +

7.0000i 9.0000 - 4.0000i 1.0000 - 4.0000i 3.0000 + 9.0000i 7.0000 + 5.0000i 4.0000 - 4.0000i

2.7 计算????

??=572396a 与??

?

???=864142b 的数组乘积。 >> a=[6 9 3;2 7 5];

>> b=[2 4 1;4 6 8]; >> a.*b ans =

12 36 3 8 42 40

2.9 对于B AX =,如果????

?

?????=753467294A ,???

???????=282637B ,求

解X 。

>> A=[4 9 2;7 6 4;3 5 7]; >> B=[37 26 28]’; >> X=A\B X =

-0.5118 4.0427 1.3318

2.10 已知:????

?

?????=987654321a ,

分别计算a 的数组平方和矩阵平方,并观察其结果。

>> a=[1 2 3;4 5 6;7 8 9]; >> a.^2 ans =

1 4 9 16 25 36 49 64 81 >> a^

2 ans =

30 36 42 66 81 96 102 126 150

2.11 ????

??-=463521a ,??

?

???-=263478b ,观察a 与b 之间的六种关系运算的结果。

>> a=[1 2 3;4 5 6]; >> b=[8 –7 4;3 6 2]; >> a>b ans =

0 1 0 1 0 1 >> a>=b ans =

0 1 0 1 0 1 >> a

1 0 1 0 1 0 >> a<=b ans =

1 0 1 0 1 0 >> a==b ans =

0 0 0 0 0 0 >> a~=b ans =

1 1 1 1 1 1

2.13 在sin(x )运算中,x 是角度还是弧度?

在sin(x)运算中,x 是弧度,MA TLAB 规定所有的三角函数运算都是按弧度进行运算。

2.14 角度[]604530=x ,求x 的正弦、余弦、正切和余切。

>> x=[30 45 60]; >> x1=x/180*pi; >> sin(x1) ans =

0.5000 0.7071 0.8660 >> cos(x1) ans =

0.8660 0.7071 0.5000 >> tan(x1) ans =

0.5774 1.0000 1.7321 >> cot(x1) ans =

1.7321 1.0000 0.5774

2.15 用四舍五入的方法将数组[2.4568 6.3982

3.9375 8.5042]取整。

>> b=[2.4568 6.3982 3.9375 8.5042]; >> round(b) ans =

2 6 4 9

2.16 矩阵????

?

?????=728365219a ,分别对a 进行特征值分解、

奇异值分解、LU 分解、QR 分解及Chollesky 分解。

>> [v,d]=eig(a,b) v =

-0.4330 -0.2543 -0.1744 -0.5657 0.9660 -0.6091 -0.7018 0.0472 0.7736 d =

13.5482 0 0 0 4.8303 0 0 0 3.6216 >> a=[9 1 2;5 6 3;8 2 7]; >> [u,s,v]=svd(a) u =

-0.5601 0.5320 -0.6350 -0.4762 -0.8340 -0.2788 -0.6779 0.1462 0.7204 s =

15.5234 0 0 0 4.5648 0 0 0 3.3446 v =

-0.8275 0.3917 -0.4023 -0.3075 -0.9156 -0.2592 -0.4699 -0.0907 0.8781 >> [l,u]=lu(a) l =

1.0000 0 0 0.5556 1.0000 0 0.8889 0.2041 1.0000 u =

9.0000 1.0000 2.0000 0 5.4444 1.8889 0 0 4.8367 >> [q,r]=qr(a) q =

-0.6903 0.3969 -0.6050 -0.3835 -0.9097 -0.1592 -0.6136 0.1221 0.7801 r =

-13.0384 -4.2183 -6.8260

0 -4.8172 -1.0807 0 0 3.7733 >> c=chol(a) c =

3.0000 0.3333 0.6667 0 2.4267 1.1447 0 0 2.2903

2.17 将矩阵??????=5724a 、??????=3817b 和??

?

???=2695c 组合成两个新矩阵:

(1)组合成一个4?3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即 ??

???

????

???237

912685

574 (2)按照a 、b 、c 的列顺序组合成一个行矢量,即 []296531877254

>> a=[4 2;5 7]; >> b=[7 1;8 3]; >> c=[5 9;6 2]; % (1)

>> d=[a(:) b(:) c(:)] d =

4 7

5 5 8

6 2 1 9

7 3 2 % (2)

>> e=[a(:);b(:);c(:)]' e =

4 5 2 7 7 8 1 3 5 6 9 2

或利用(1)中产生的d >> e=reshape(d,1,12) ans =

4 5 2 7 7 8 1 3 5 6 9 2

第3章 数值计算基础

3.1 将(x -6)(x -3)(x -8)展开为系数多项式的形式。 >> a=[6 3 8]; >> pa=poly(a);

>> ppa=poly2sym(pa) ppa =

x^3-17*x^2+90*x-144

3.2 求解多项式x 3-7x 2+2x +40的根。 >> r=[1 -7 2 40]; >> p=roots(r); -0.2151 0.4459

0.7949 0.2707

3.3 求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。 >> p=poly([1 2 3 4]); >> polyvalm(p,8) ans = 840

3.4 计算多项式乘法(x 2+2x +2)(x 2+5x +4)。 >> c=conv([1 2 2],[1 5 4]) c =

1 7 16 18 8

3.5 计算多项式除法(3x 3+13x 2+6x +8)/(x +4)。 >> d=deconv([3 13 6 8],[1 4]) d =

3 1 2

3.6 对下式进行部分分式展开:

2

7243645232

3

4

5

234+++++++++x x x x x x x x x

>> a=[1 3 4 2 7 2];

>> b=[3 2 5 4 6];

>> [r,s,k]=residue(b,a) r =

1.1274 + 1.1513i 1.1274 - 1.1513i -0.0232 - 0.0722i -0.0232 + 0.0722i 0.7916 s =

-1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991 k = []

3.7 计算多项式9514124234++--x x x x 的微分和积分。

>> p=[4 –12 –14 5]; >> pder=polyder(p);

>> pders=poly2sym(pder) >> pint=polyint(p);

>> pints=poly2sym(pint) pders =

12*x^2-24*x-14 pints =

x^4-4*x^3-7*x^2+5*x

3.8 解方程组????

?

?????=??????????66136221143092x 。

>> a=[2 9 0;3 4 11;2 2 6]; >> b=[13 6 6]';

>> x=a\b x =

7.4000 -0.2000 -1.4000

3.9 求欠定方程组???

???=???

???5865394742x 的最小范数解。

>> a=[2 4 7 4;9 3 5 6]; >> b=[8 5]'; >> x=pinv(a)*b x =

-0.2151 0.4459 0.7949 0.2707

3.10 有一组测量数据如下表所示,数据具有y =x 2的

>> x=[1 1.5 2 2.5 3 3.5 4 4.5 5]'

>> y=[-1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.2]' >> e=[ones(size(x)) x.^2] >> c=e\y

>> x1=[1:0.1:5]';

>> y1=[ones(size(x1)),x1.^2]*c; >> plot(x,y,'ro',x1,y1,'k')

3.11 矩阵????

?

?????-=943457624a ,

计算a 的行列式和逆矩阵。 >> a=[4 2 -6;7 5 4 ;3 4 9]; >> ad=det(a) >> ai=inv(a) ad = -64 ai =

-0.4531 0.6562 -0.5937 0.7969 -0.8437 0.9062 -0.2031 0.1562 -0.0937

3.12 y =sin(x ),x 从0到2π,?x =0.02π,求y 的最大值、最小值、均值和标准差。

>> x=0:0.02*pi:2*pi; >> y=sin(x); >> ymax=max(y) >> ymin=min(y) >> ymean=mean(y) >> ystd=std(y) ymax = 1 ymin = -1

ymean =

2.2995e-017 ystd =

0.7071

3.13 []54321=x ,[]108642=y ,计算x 的协方差、y 的协方差、x 与y 的互协方差。

>> x=[1 2 3 4 5]; >> y=[2 4 6 8 10]; >> cx=cov(x) >> cy=cov(y) >> cxy=cov(x,y) cx =

2.5000 cy = 10 cxy =

2.5000 5.0000 5.0000 10.0000

3.14 参照例3-20的方法,计算表达式()

2

2

e 1053y x

y x z ---=的梯度并绘图。

>> v = -2:0.2:2;

>> [x,y] = meshgrid(v);

>> z=10*(x.^3-y.^5).*exp(-x.^2-y.^2); >> [px,py] = gradient(z,.2,.2); >> contour(x,y,z) >> hold on

>> quiver(x,y,px,py) >> hold off

3.15 有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi ,用三次样条法进行插值。

>> x0=0:pi/5:4*pi;

>> y0=sin(x0).*exp(-x0/10); >> x=0:pi/20:4*pi; >> y=spline(x0,y0,x);

>> plot(x0,y0,'or',x,y,'b')

第4章 符号数学基础

4.1 创建符号变量有几种方法?

MATLAB 提供了两种创建符号变量和表达式的函数:sym 和syms 。

sym 用于创建一个符号变量或表达式,用法如x=sym(‘x’) 及 f=sym(‘x+y+z’),syms 用于创建多个符号变量,用法如syms x y z 。

f=sym(‘x+y+z’) 相当于

syms x y z f= x+y+z

4.2 下面三种表示方法有什么不同的含义? (1)f=3*x^2+5*x+2 (2)f='3*x^2+5*x+2'

(3)x=sym('x')

f=3*x^2+5*x+2 (1)f=3*x^2+5*x+2

表示在给定x 时,将3*x^2+5*x+2的数值运算结果赋值给变量f ,如果没有给定x 则指示错误信息。

(2)f='3*x^2+5*x+2'

表示将字符串'3*x^2+5*x+2'赋值给字符变量f ,没有任何计算含义,因此也不对字符串中的内容做任何分析。

(3)x=sym('x')

f=3*x^2+5*x+2 表示x 是一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f 也自然成为符号变量了。

4.3 用符号函数法求解方程a t 2+b*t +c=0。 >> r=solve('a*t^2+b*t+c=0','t') r =

[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]

4.4 用符号计算验证三角等式:

sin(?1)cos(?2)-cos(?1)sin(?2) =sin(?1-?2) >> syms phi1 phi2; >>

y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2))

y =

sin(phi1-phi2)

4.5 求矩阵??

?

?

??=2221

1211a a a a A 的行列式值、逆和特征根。 >> syms a11 a12 a21 a22;

>> A=[a11,a12;a21,a22]

>> AD=det(A) % 行列式 >> AI=inv(A) % 逆

>> AE=eig(A) % 特征值 A =

[ a11, a12] [ a21, a22] AD =

a11*a22-a12*a21 AI = [ -a22/(-a11*a22+a12*a21), a12/(-a11*a22+a12*a21)]

[ a21/(-a11*a22+a12*a21), -a11/(-a11*a22+a12*a21)]

AE =

[ 1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]

[ 1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]

4.6 因式分解:6555234-++-x x x x >> syms x;

>> f=x^4-5*x^3+5*x^2+5*x-6;

>> factor(f) ans =

(x-1)*(x-2)*(x-3)*(x+1)

4.7 ?

???????=)sin()log(12

x x e

x x

a f ax ,用符号微分求df/dx 。

>> syms a x;

>> f=[a, x^2, 1/x; exp(a*x), log(x), sin(x)]; >> df=diff(f) df =

[ 0, 2*x, -1/x^2] [ a*exp(a*x), 1/x, cos(x)]

4.8 求代数方程组??

???=+=++00

2y x c by ax 关于x,y 的解。

>> S=solve('a*x^2+b*y+c=0','b*x+c=0','x','y'); >> disp('S.x=') , disp(S.x) >> disp('S.y=') , disp(S.y) S.x= -c/b S.y=

-c*(a*c+b^2)/b^3

4.9 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t 的变化范围为[0,2π]。

>> syms t

>> ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi])

4.10 绘制极坐标下sin(3*t)*cos(t)的图形。 >> syms t

>> ezpolar(sin(3*t)*cos(t)

第5章 基本图形处理功能

5.1 绘制曲线13++=x x y ,x 的取值范围为[-5,5]。 >> x=-5:0.2:5; >> y=x.^3+x+1; >> plot(x,y)

5.2 有一组测量数据满足-at e =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线。

>> t=0:0.5:10; >> y1=exp(-0.1*t); >> y2=exp(-0.2*t); >> y3=exp(-0.5*t);

>> plot(t,y1,'-ob',t,y2,':*r',t,y3,'-.^g')

5.3 在5.1题结果图中添加标题-at e =y ,并用箭头线标识出各曲线a 的取值。

>> title('\ity\rm=e^{-\itat}')

>> title('\ity\rm=e^{-\itat}','FontSize',12) >>

text(t(6),y1(6),'\leftarrow\ita\rm=0.1','FontSize',11)

>>

text(t(6),y2(6),'\leftarrow\ita\rm=0.2','FontSize',11)

>>

text(t(6),y3(6),'\leftarrow\ita\rm=0.5','FontSize',11)

5.4 在5.1题结果图中添加标题-at e =y 和图例框。

>> title('\ity\rm=e^{-\itat}','FontSize',12)

5.5表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。

>> y=[3 6 9 6;6 7 7 4;7 3 2 3;4 2 5 2;2 4 8 7;8 7 4 4]; >> bar(y)

>> bar(y ,’stack’)

5.6 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。

>> x=[66 49 71 56 38]; >> L=[0 0 0 0 1]; >> pie(x,L)

5.7 2

2

y x xe z --=,当x 和y 的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。

>> [x,y]=meshgrid([-2:.2:2]); >> z=x.*exp(-x.^2-y.^2); >> mesh(x,y,z)

>> subplot(2,2,1), plot3(x,y,z) >> title('plot3 (x,y,z)')

>> subplot(2,2,2), mesh(x,y,z) >> title('mesh (x,y,z)')

>> subplot(2,2,3), surf(x,y,z) >> title('surf (x,y,z)')

>> subplot(2,2,4), surf(x,y,z), shading interp >> title('surf (x,y,z), shading interp')

5.8 绘制peaks 函数的表面图,用colormap 函数改变预置的色图,观察色彩的分布情况。 >> surf(peaks(30));

>> colormap(hot)

>> colormap(cool)

>> colormap(lines)

5.9 用sphere 函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。

>> [x,y,z]=sphere(30);

>> mesh(x,y,z)

>> mesh(x,y,z),hidden off

>> surf(x,y,z)

>> z(18:30,1:5)=NaN*ones(13,5);

>> surf(x,y,z)

5.10 将5.9题中的带剪孔的球形表面图的坐标改变为正方形,以使球面看起来是圆的而不是椭圆的,然后关闭坐标轴的显示。

axis square

axis off

6.3 如何设置和获取指定句柄对象的属性值?一图形窗口对象的句柄为h,先查询该窗口对象可以设置的各种属性,再将窗口的灰色背景设置为白色背景。

(1)利用set(句柄,‘属性名称’,属性值)语句可以设置指定对象的属性,get(句柄,‘属性名称’)语句可以获得指定对象的属性。

(2)>> set(h)

Alphamap

BackingStore: [ {on} | off ]

CloseRequestFcn: string -or- function handle -or- cell array

Color

Colormap

CurrentAxes

CurrentCharacter

CurrentObject

……

从列出的属性内容可以看到,设置背景颜色的属性名为Color,因此

>> set(h,’color’,’w’)

即可将图形窗口的背景色改为白色。

6.4 已知三维图形视角的缺省值是方位角为-3

7.5°,仰角为30°,将观察点顺时针旋转20 角的命令是什么?

>> view(-57.5,30)

6.5画一双峰曲面(peaks)图,加灯光light,改变光源的位置观察图形的变化。

>> surf(peaks)

>> shading interp

>> lighting phong

>> light('Position',[-3 -2 1]);

>> light('Position',[-1 0 1]);

6.6 在双峰曲面上改变不同的光照模式,观察效果。

>> surf(peaks)

>> shading interp

>> light('Position',[-3 -2 1]);

>> lighting flat

>> lighting gouraud

>> lighting phong

>> lighting none

6.7 用subplot语句在一个图形窗口上开多个大小不等的子窗口进行绘图并添加注释,见图。

subplot('position',[0.1,0.15,0.3,0.65])

hist(randn(1,1000),20);

xlabel('直方图')

subplot('position',[0.45,0.52,0.25,0.28])

[xp,yp,zp]=peaks;

contour(xp,yp,zp,15,'k')

hold on

pcolor(xp,yp,zp)

shading interp

hold off

axis off

text(-1.2,-4,'伪彩色图')

subplot('position',[0.72,0.5,0.25,0.3])

sphere(25);

axis equal,axis([-0.75,0.75,-0.75,0.75,-0.75,0.75])

light('Position',[1 3 2]);

light('Position',[-3 -1 3]);

material shiny

axis off

text(-0.8,-0.7,-1,'三维图')

subplot('position',[0.45,0.15,0.5,0.25])

t=0:pi/15:pi;

y=sin(4*t).*sin(t)/2;

plot(t,y,'-bs','LineWidth',2,... %设置线型

'MarkerEdgeColor','k',... %设置标记点边缘颜色

'MarkerFaceColor','y',... %设置标记点填充颜色

'MarkerSize',5)

axis([0,3.14,-0.5,0.5])

xlabel('带标记点的线图')

subplot('position',[0.1,0.9,0.8,0.1])

text(0.25,0.2,'多窗口绘图示例',...

'fontsize',25,'fontname','隶书','color','b')

axis off

6.8 用[c,hc]=contour(peaks(30))语句绘制双峰曲面的等高线图,通过控制图形句柄的方法将第四条等高线加粗为2磅,将第六条等高线表示为虚线,在第十条等高线上加星号标记

[c,hc]=contour(peaks(30));

6.9 做一个花瓶,如图示。(提示:做一个旋转体表

面,调入一幅图像对该表面进行彩绘,即用图像的色图索引作为表面体的色图索引)

>> t=(0:20)/20;

>> r=sin(2*pi*t)+2;

>> [x,y,z]=cylinder(r,40); % 产生旋转体表面的三维数据

>> cx=imread('flowers.tif'); % 读取名为flowers.tif的图象文件

>> [c,map]=rgb2ind(cx,256); % 真彩色图转换为索引图(若读入的是索引图,不需转换)

>> c1=double(c)+1; % 把unit8编址图象数据变换为双精度格式

>>

surface(x,y,z,'Cdata',flipud(c1),'FaceColor','texturemap',...

'EdgeColor','none','CDataMapping','direct','Ambient',...

0.6,'diffuse',0.8,'speculars',0.9) %通过属性设置,进行彩绘。

>> colormap(map) % 使用图象的色图>> view(-50,10)

>> axis off

第7章GUI程序设计

7.1 GUI开发环境中提供了哪些方便的工具?各有什么用途?

在GUI开发环境中提供了下列五个方便的工具:

(1)布局编辑器(Layout Editor)—在图形窗口中创建及布置图形对象

(2)几何排列工具(Alignment Tool)—调整各对象之间的相互几何关系和位置

(3)属性编辑器(Property Inspector)—查询并设置对象的属性值

(4)对象浏览器(Object Browser)—获得当前MATLAB窗口中图形对象句柄的分级排列

(5)菜单编辑器(Menu Editor)—建立和编辑主菜单和图形对象的鼠标右键菜单

7.2 做一个带按钮的界面,当按动按钮时,在计算机声卡中播放一段音乐。(提示,找一个.wav文件,简单起见可以在windows目录下找一个文件,将其放在当前工作目录下或搜索路径上,当按动“开始”按钮时调入该文件并播放,发声功能由sound函数完成,具体用法请查阅帮助信息)

提示:

(1)先建立一个静态文本对象作为界面的标题“简单声音播放器”

(2)建立一个按钮对象用于启动播放器,callback 函数中的内容为

[y,f,b]=wavread('loff'); % 读入声音文件loff.wav

sound(y,f,b) % 由声卡播放声音(3)再建立一个用于关闭界面的按钮对象,callback 函数中的内容为

close(gcbf)

7.3 做一个滑条(滚动条)界面,图形窗口标题设置为GUI Demo: Slider,并关闭图形窗口的菜单条。功能:通过移动中间的滑块选择不同的取值并显示在数字框中,如果在数字框中输入指定范围内的数字,滑块将移动到相应的位置,见下图。

提示:

(1)在figure的属性浏览器中设置Name为GUI Demo: Slider

(2)先建立一个滑条对象,在属性浏览器中设置Max 为50,Min为-50;

(3)在滑条的两端各放置一个静态文本用于显示最大值和最小值;

(4)滑条对象的callback函数中的内容为:

val=get(handles.slider1,'value');

set(handles.edit1,'string',num2str(val));

(5)在滑条上方放置一个文本框,用于显示滑块的位置所指示的数值,也可以在文本框中直接输入数值,callback函数中的内容为:

str=get(handles.edit1,'string');

set(handles.slider1,'value',str2num(str));

7.4 用单选框做一个如图所示的界面,通过选择不同的单选框来决定使用不同的色彩图。

(1)建立坐标轴对象,用于显示图形;

(2)建立建立五个单选框,用于选择不同的色图;

(3)callback函数的内容为:

function varargout = radiobutton1_Callback(h, eventdata, handles, varargin)

set(handles.radiobutton1,'value',1)

set(handles.radiobutton2,'value',0)

set(handles.radiobutton3,'value',0)

set(handles.radiobutton4,'value',0)

set(handles.radiobutton5,'value',0)

colormap(jet)

%

-------------------------------------------------------------------- function varargout = radiobutton2_Callback(h, eventdata, handles, varargin)

set(handles.radiobutton1,'value',0)

set(handles.radiobutton2,'value',1)

set(handles.radiobutton3,'value',0)

set(handles.radiobutton4,'value',0)

set(handles.radiobutton5,'value',0)

colormap(hsv)

%

-------------------------------------------------------------------- function varargout = radiobutton3_Callback(h, eventdata, handles, varargin)

set(handles.radiobutton1,'value',0)

set(handles.radiobutton2,'value',0)

set(handles.radiobutton3,'value',1)

set(handles.radiobutton4,'value',0)

set(handles.radiobutton5,'value',0)

colormap(hot)

%

-------------------------------------------------------------------- function varargout = radiobutton4_Callback(h, eventdata, handles, varargin)

set(handles.radiobutton1,'value',0)

set(handles.radiobutton2,'value',0)

set(handles.radiobutton3,'value',0)

set(handles.radiobutton4,'value',1)

set(handles.radiobutton5,'value',0)

colormap(pink)

%

-------------------------------------------------------------------- function varargout = radiobutton5_Callback(h, eventdata, handles, varargin)

set(handles.radiobutton1,'value',0)

set(handles.radiobutton2,'value',0)

set(handles.radiobutton3,'value',0)

set(handles.radiobutton4,'value',0)

set(handles.radiobutton5,'value',1)

colormap(copper)

7.5 制作一个曲面光照效果的演示界面,如图所示,三个弹出式菜单分别用于选择曲面形式、色彩图、光照模式和反射模式,三个滚动条用于确定光源的位置,一个按钮用于退出演示。

提示:

(1)建立一个静态文本,用于显示界面的标题:光照效果演示;

(2)建立坐标轴对象,用于显示图形;

(3)建立四个下拉菜单,分别用于选择绘图表面的形状、色图、光照模式和反射模式,每个下拉菜单的上方都有一个静态文本用于说明菜单的作用;

(4)在一个frame上建立三个滑条用于确定光源的位置,并在frame上方加一说明;

(5)建立一个按钮用于退出演示;

(6)callback函数的内容为:

function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)

delete(handles.figure1)

%

-------------------------------------------------------------------- function varargout = popupmenu1_Callback(h, eventdata, handles, varargin)

val=get(h,'value');

switch val

case 1

surf(peaks);

case 2

sphere(30);

case 3

membrane

case 4

[x,y]=meshgrid(-4:.1:4);

r=sqrt(x.^2+y.^2)+eps;

z=sinc(r);

surf(x,y,z)

case 5

[x,y]=meshgrid([-1.5:.3:1.5],[-1:0.2:1]);

z=sqrt(4-x.^2/9-y.^2/4);

surf(x,y,z);

case 6

t=0:pi/12:3*pi;

r=abs(exp(-t/4).*sin(t));

[x,y,z]=cylinder(r,30);

surf(x,y,z);

end

shading interp

light('Position',[-3 -2 1]);

axis off

%

-------------------------------------------------------------------- function varargout = radiobutton1_Callback(h, eventdata, handles, varargin)

set(h,'value',1)

set(handles.radiobutton2,'value',0)

set(handles.radiobutton3,'value',0)

set(handles.radiobutton4,'value',0)

lighting flat

%

-------------------------------------------------------------------- function varargout = radiobutton2_Callback(h, eventdata, handles, varargin)

set(h,'value',1)

set(handles.radiobutton1,'value',0)

set(handles.radiobutton3,'value',0)

set(handles.radiobutton4,'value',0)

lighting gouraud

%

-------------------------------------------------------------------- function varargout = radiobutton3_Callback(h, eventdata, handles, varargin)

set(h,'value',1)

set(handles.radiobutton1,'value',0)

set(handles.radiobutton2,'value',0)

set(handles.radiobutton4,'value',0)

lighting phong

%

-------------------------------------------------------------------- function varargout = radiobutton4_Callback(h, eventdata, handles, varargin)

set(h,'value',1)

set(handles.radiobutton1,'value',0)

set(handles.radiobutton3,'value',0)

set(handles.radiobutton3,'value',0)

lighting none

%

-------------------------------------------------------------------- function varargout = popupmenu2_Callback(h, eventdata, handles, varargin)

val=get(h,'value');

switch val

case 1

colormap(jet)

case 2

colormap(hot)

case 3

colormap(cool)

case 4

colormap(copper)

case 5

colormap(pink)

case 6

colormap(spring)

case 7

colormap(summer)

case 8

colormap(autumn)

case 9

colormap(winter)

end

%

-------------------------------------------------------------------- function varargout = popupmenu3_Callback(h, eventdata, handles, varargin)

val=get(h,'value');

switch val

case 1

lighting flat

case 2

lighting gouraud

case 3

lighting phong

case 4

lighting none

end

%

-------------------------------------------------------------------- function varargout = popupmenu4_Callback(h, eventdata, handles, varargin)

val=get(h,'value');

switch val

case 1

material shiny

case 2

material dull

case 3

material metal

case 4

material default

end

%

--------------------------------------------------------------------

function varargout = slider1_Callback(h, eventdata, handles, varargin)

val=get(h,'value');

set(handles.edit1,'string',num2str(val));

lx==val; ly=get(handles.slider2,'value'); ly=get(handles.slider3,'value');

light('Position',[x y z]);

%

-------------------------------------------------------------------- function varargout = edit1_Callback(h, eventdata, handles, varargin)

str=get(h,'string');

set(handles.slider1,'value',str2num(str));

lx==str2num(str); ly=get(handles.slider2,'value'); ly=get(handles.slider3,'value');

light('Position',[x y z]);

%

-------------------------------------------------------------------- function varargout = slider2_Callback(h, eventdata, handles, varargin)

val=get(h,'value');

set(handles.edit2,'string',num2str(val));

lx=get(handles.slider1,'value'); lx==val; ly=get(handles.slider3,'value');

light('Position',[x y z]);

%

-------------------------------------------------------------------- function varargout = edit2_Callback(h, eventdata, handles, varargin)

str=get(h,'string');

set(handles.slider2,'value',str2num(str));

%

-------------------------------------------------------------------- function varargout = slider3_Callback(h, eventdata, handles, varargin)

val=get(h,'value');

set(handles.edit3,'string',num2str(val));

%

-------------------------------------------------------------------- function varargout = edit3_Callback(h, eventdata, handles, varargin)

str=get(h,'string');

set(handles.slider3,'value',str2num(str));

7.6 创建一个用于绘图参数选择的菜单对象Plot Option,其中包含三个选项LineStyle、Marker和Color,每个选项下面又包含若干的子项分别可以进行选择图线的类型、标记点的类型和颜色。

提示:

(1)打开菜单编辑器,建立第一级菜单项Plot Option;

(2)在Plot Option菜单项下面建立第二级子菜单项LineStyle、Marker和Color;

(3)在第二级菜单项下面分别建立第三级子菜单项。

7.7 建立三个输入窗口的输入对话框,如图所示。

输入命令或程序:

prompt={'输入姓名','输入年龄','输入职业'};

title='信息登记';

lines=[1 1 1]';

def={'张平','3','教师'};

answer=inputdlg(prompt,title,lines,de

f);

8.7 编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。

function c=collatz(n)

% collatz

% Classic “3n+1” Ploblem from number theory

c=n;

while n>1

if rem(n,2)==0

n=n/2;

else

n=3*n+1;

end

c=[c n];

end

8.8 有一组学生的考试成绩(见表),根据规定,成绩在100分时为满分,成绩在90~99之间时为优秀,成绩在80~89分之间时为良好,成绩在60~79分之间为及格,成绩在60分以下时为不及格,编制一个根据成绩划分等

Name=['王','张','刘','李','陈','杨','于','黄','郭','赵'];

Marks=[72,83,56,94,100,88,96,68,54,65];

% 划分区域:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<60)。

n=length(Marks);

for i=1:n

a{i}=89+i;

b{i}=79+i;

c{i}=69+i;

d{i}=59+i;

end;

c=[d,c];

% 根据学生的分数,求出相应的等级。

for i=1:n

switch Marks(i)

case 100 %得分为100时

Rank(i,:)=' 满分';

case a %得分在90~99之间

Rank(i,:)=' 优秀';

case b %得分在80~89之间

Rank(i,:)=' 良好';

case c %得分在60~79之间

Rank(i,:)=' 及格';

otherwise %得分低于60。

Rank(i,:)='不及格';

end

end

% 将学生姓名,得分,级等信息打印出来。

disp(' ')

disp(['学生姓名',' 得分',' 等级']);

disp('--------------------------')

for i=1:10;

disp([' ',Name(i),' ',num2str(Marks(i)),' ',Rank(i,:)]);

end

学生姓名得分等级

-----------------------------------------

王72 及格

张83 良好

刘56 不及格

李94 优秀

陈100 满分

杨88 良好

于96 优秀

黄68 及格

郭54 不及格

赵65 及格

8.9 编写一段程序,能够把输入的摄氏温度转化成华

k=input('选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏):');

if k~=1 & k~=2

disp('请指定转换方式')

break

end

tin=input('输入待转变的温度(允许输入数组):');

if k==1

tout=tin*9/5+32; % 摄氏转换为华氏

k1=2;

elseif k==2

tout=(tin-32)*5/9; % 华氏转换为摄氏

k1=1;

end

str=[' ?C';' ?F'];

disp(['转换前的温度', ' ', '转换后的温度'])

disp([' ',num2str(tin),str(k,:), ' ', num2str(tout),str(k1,:)])

第9章Simulink基础

9.3 有传递函数如下的控制系统,用Simulink建立系统模型,并对系统的阶跃响应进行仿真。

8

4

1

)

(

2+

+

=

s

s

s

G

Matlab上机_测试题c答案讲课教案

<<<<<<精品资料》》》》》 Matlab 上机测试题答案 班级 姓名 学号 要求: (1)请将程序和运行结果粘贴到题目下面,写清楚哪部分是程序,哪部分是运行结果,运行结果包括图形,图形请适当缩小,然后将word 文档传到教育在线,注意保存格式是2003的doc ,文件名”自111_110110_张三” (2)在最开始前请将输入Matlab 命令窗口中输入”diary ”命令,随后在workspace 窗口中可以发现一个名为“diary ”的文件。在老师要求结束练习后,在命令窗口输入”diary off ”命令,然后将文件“diary ”上传到教育在线。 (3)注意题号不要弄乱。 --------------------------------------------------------------------- 1、 矩阵Y= ???? ? ???? ???3472123100451150425 ,给出元素1的全下标和单下标,并用函数练习全下标和单下标的转换,求出元素100的存储位置。取出子矩阵? ? ? ? ??21301,并求该矩阵的维数。 解:命令为: Y=[5,2,4;0,15,1;45,100,23;21,47,3] Y(2,3) Y(10) sub2ind([4 3],2,3) [i,j]=ind2sub([4 3],10) find(Y==100) sub2ind([4 3],3,2) B=Y(2:2:4,3:-2:1) 或 B=Y([2 4],[3 1]) [m n]=size(Y) --------------------------------------------------------------------- 2、已知矩阵A=[1 0 -1 ;2 4 1; -2 0 5],B=[0 -1 0;2 1 3;1 1 2] 求2A+B 、A 2-3B 、A*B 、B*A 、A .*B ,A/B 、A\B 解:命令为: A=[1 0 -1 ;2 4 1; -2 0 5] B=[0 -1 0;2 1 3;1 1 2] E=2*A+B F=A^2-3*B G=A*B H=B*A I=A.*B J=A/B K=A\B --------------------------------------------------------------------- 3、利用函数产生3*4阶单位矩阵和全部元素都为8的4*4阶矩阵,并计算两者的乘积。 解:命令为: A=eye(3,4) B=8*ones(4) C=A*B --------------------------------------------------------------------- 4、创建矩阵a=????? ???????------7023021.5003.120498601 ,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b 构成矩阵d ,计算a*b 、c

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

matlab上机练习(附答案)

1.以下两种说法对吗? (1)MATLAB进行数值的表达精度与其指令窗中的数据显示精度相同。 (2)MATLAB指令窗中显示的数据有效位数不超过七位。 2.历史指令窗所记录的内容与diary指令所产生的“日志”内容有什么不同? DIARY filename causes a copy of all subsequent command window input and most of the resulting command window output to be appended to the named file. If no file is specified, the file 'diary' is used. DIARY OFF suspends it. DIARY ON turns it back on. DIARY, by itself, toggles the diary state. Use the functional form of DIARY, such as DIARY('file'), when the file name is stored in a string. 3.如何把用户自己的“工作目录”永久地设置在MATLAB的搜索路径上?“位于搜索路 径上的目录”与“当前目录”在MATLAB中的功用相同吗? 4.如何向MATLAB工作空间输入一个含有100个左右元素的一维或二维数值数组?用直 接键入法?用数组编辑器?用M文件编辑器? 5.运用数组算术运算符去掉下面程序里的for/end循环: x=11:15 for k=1:length(x) z(k)=x(k)^2+2.3*x(k)^0.5; end x=11:15 z1=x.^2+2.3*x.^0.5 6.不使用数组算术运算符,重写下面的程序代码: x=[2 1 4] z=1./(1+x.^2) x=2;k=1; while i<=4, z2(k)=1/(1+i^2); i=i+1;x=x+1; end 7.某公司销售电脑打印机的价格方案如下: ()如果顾客只买一台打印机,则一台的基本价格为$150。 ()如果顾客购买两台以上打印机,则第二台价格为$120。 ()第三台以后,每台$110。

MATLAB上机习题一

MATLAB上机习题一 请按以下步骤完成上机实验: 1)在FTP上下载“MATLAB上机习题一.doc”文件,所有习题列在该文件内; 2)在MATLAB中完成所有习题,并将屏幕截图粘贴到相应习题后面; 3)如果习题是问答题,请将答案写在题目后; 4)如果有的习题要求提供脚本文件,请将脚本文件内容拷贝到相应习题后; 5)将文件保存并重命名为“自己的学号-姓名”,例如“20110771-张三.doc”; 6)上传该文件到FTP的相关目录。 1. 运行MATLAB软件,拖放、关闭界面上的子窗口,并恢复到原始试图。 2. 采用鼠标及命令两种方式将桌面添加到MATLAB搜索路径列表的起始及最后位置。 3. 采用鼠标及命令方式将当前工作目录设置为桌面指向的文件夹。 4. 通过使用帮助确定内置变量ispc 的含义。 6. 观察MATLAB中关键字、字符串、注释的字体显示颜色。 5. 创建double类型的变量,并进行计算 1)a=87,b=190,计算a+b、a-b、a*b;

2)创建uint8类型的变量,数值与(1)中相同,进行相同的计算,观察计算结果与预想的是否一致。 6. 计算如下表达式: 1)()sin 60 2)3e 3)3cos 4π?? ??? 4)2 7562323336 +?-?? 7. 设u=2,v=3,计算: 1)4log uv v 2)() 2 2u e v v u +- 3 8. 计算如下表达式: 1)()()3542i i -+ 2)()sin 28i - 9. 判断下面语句的运算结果,并与MATLAB 计算结果做比较:

1)420< 2)420≤ 3)420== 4)4~20= 5)''''b B < 10. 设a=39,b=58,c=3,d=7,判断下面表达式的值与MATLAB 计算结果做比较: 1)a b > 2)a b < 3)&&a b b c >> 4)a d == 5)|a b c > 6)~~d 11. 判断下列变量名哪些是合法的MATLAB 变量: 1)fred 7)fred! 2)book_1 8)book-1 3)2ndplace 9)Second_Place 4)#1 10)No_1 5)vel_5 11)vel.5 6)tan 12)while 提示,可以使用isvarname 对上述变量名进行检验。 12. 编写脚本程序,命名为barbell.m ,完成如下计算: 如图1所示的杠铃,

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

Matlab上机实验

Matlab 上机实验 一、 实验目的 1、 掌握绘制MATLAB 二维、三维和特殊图形的常用函数; 2、 熟悉并掌握图像输入、输出及其常用处理的函数。 二、 实验内容 1 绘制函数的网格图和等高线图。42 2cos cos y x ye x z +-= 其中x 的21个值均匀分布在[-5,5]范围,y 的31个值均匀分布在[0,10],要求将产生的网格图和等高线图画在同一个图形窗口上。 2 绘制三维曲面图,使用纯铜色调色图阵进行着色,并进行插值着色 处理。?????===s z t s y t s x sin sin cos cos cos 230,20ππ≤≤≤≤t s 3 已知 ???????>++≤+=0),1ln(210,22x x x x e x y π 在-5<=x<=5区间绘制函数曲线。 4 已知y1=x2,y2=cos(2x),y3=y1*y2,其中x 为取值-2π~2π的等差数列(每次增加0.02π),完成下列操作: a) 在同一坐标系下用不同的颜色和线型绘制三条曲线,给三条曲线添加图例; b) 以子图形式,分别用条形图、阶梯图、杆图绘制三条曲线,并分别给三个图形添加标题“y1=x^2”,“y2=cos(2x)”和“y3=

y1*y2”。 5 在xy 平面内选择区域[][],,-?-8888 ,绘制函数 z =的三 种三维曲面图。 6 在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中cos(x)图象用红色小圆圈画.并在函数图上标注 “y=sin(x)”, “y=cos(x)” ,x 轴,y 轴,标题为“正弦余弦函数图象”. 7 分别用线框图和曲面图表现函数z=cos(x)sin(y)/y ,其中x 的取值为 [-1.5pi,1.5pi],y=x ,要求:要有标题、坐标轴标签 8 有一组测量数据满足-at e =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,并加入标题和图列框(用代码形式生成) 9 2 2y x xe z --=,当x 和y 的取值范围均为-2到2时,用建立子窗口 的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图 10 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。 11 用sphere 函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。 12 以自己的个人画像或照片(JPG)为对象,读入该图像并了解图像的信息,同时利用所学函数对其进行灰度、二值、旋转及缩放等处理,并以PNG 形式输出。

MATLAB上机考试题(一)

(1)在MATLAB的命令窗口中执行_____命令,将命令窗口的显示内容清空。() A.clear B.clc C.echo off D.cd (2)在MATLAB的命令窗口中执行_____命令,使数据输出显示为十六进制表示。() A.format long B.format rat C.format hex D.format short e (3)下列变量名中_____是合法的。() A.x*y,a,1 B.x\y,a1234 C.end,1 bcx D.char_1,i,j (4)已知x=0:5,则x有_____个元素。() A.5 B.6 C.7 D.8 (5)一下运算符中哪个的优先级最高_____。() A./ B.^ C.~= D.& (6)使用检测函数isnumeric(10)的结果是_____。() A.1 B.0 C.false D.true (7)三维图形中默认视角是_____度。() A.方位角=0 俯仰角=90 B.方位角=90 俯仰角=0 C.方位角=37.5 仰俯角=30 D.方位角=0 仰俯角=180 (8)将符号表达式化简为因式分解因式分解因式分解因式分解形式,使用_____函数。() A.collect B.expand C.horner D.factor (9)运行以下命令,则_____描述是正确的。()>>syms a b c d >>A=[a b;c d] A.A占用的内存小于100B B.创建了5个符号变量 C.A占用的内存是a b c d的总和 D.不存在 (10)已知数组a=[1 2 3;4 5 6;7 8 9],则a(:,end)是指_____元素。 (11)运行命令bitor(8,7)的结果是_____。 (12)运行以下命令: >>x=0:10; >>y1=sin(x); >>y2=5*sin(x); >>y3=[10*sin(x );20*sin(x)]; >>plot(x,y1,x,y2,x,y3) 则在一个图形窗口中,可以看到_____条曲线。 (13)符号表达式“g=sym(sin(a*z)+cos(w*v))”中的自由符号变量是_____。 (14)运行以下命令: >>syms t >>f1=1/t >>limitf1_r=limit(f1,'t','0','right'); 则函数limitf1_r趋向0的右极限为_____。 15.在MATLAB的命令窗口中执行______命令,使数值5.3显示为5.300000000000000e+000 A. format long B. format long e C. format short D. format short e 16.下列变量名中______是合法的。A.char_1,i,j B.1_1, a.1 C.x\y,a1234 D.end,1bcx 17.已知x=0:9,则x有_____个元素。 A.12 B.11 C.10 D.9 18.产生对角线上为全1其余为0的2行3列矩阵的命令是______ A. ones(2,3) B. ones(3,2) C. eye(2,3) D. eye(3,2) 19.已知数组a= [1 2 3 4 5 6 7 8 9] ,则运行a(:,1)=[]命令后______ A. a变成行向量 B. a数组为2行2列 C. a 数组为3行2列 D. a数组中没有元素3 20.按含义选出各个函数名:表示4舍5入到整数的是____,表示向最接近0取整的是____,表示向最接近-∞取整的是____,表示向最接近∞取整的是_____ A. round(x) B. fix(x) C. floor(x) D. ceil(x) 21.已知a=0:5,b=1:6,下面的运算表达式出错的为______ A. a+b B. a./b C. a’*b D. a*b 22.已知s=’显示”hello”’,则s的元素个数是______ A. 12 B. 9 C. 7 D.18

matlab上机实验指导书

MATLAB应用基础实验指导书

第一章 MATLAB及其工作环境介绍 (1) 1.1 MATLAB简介 (1) 1.2 MATLAB的工作环境介绍 (1) 1.3 MATLAB的基本管理命令 (4) 第二章 MATLAB的数值计算功能 (5) 2.1 变量与赋值语句 (5) 2.2 MATLAB矩阵 (5) 2.3 MATLAB表达式 (10) 2.4 MATLAB常用数学函数 (11) 2.5 矩阵的基本运算 (12) 2.6 数组运算 (16) 2.7 多项式及其运算 (17) 第三章 MATLAB程序设计入门 (19) 3.1 M文件 (19) 3.2 数据的输入输出 (21) 3.3 全局变量和局部变量 (23) 3.4 程序流程控制 (23) 第四章 MATLAB的符号运算功能 (28) 4.1 建立符号对象 (28) 4.2 符号算术运算 (29) 4.3 符号微积分运算 (32) 4.4 符号函数的可视化 (34) 第五章 MATLAB的可视化功能 (37) 5.1 二维图形 (37) 5.2绘制三维图形 (42) 5.3 特殊坐标图形 (44) 5.4 图形句柄 (45)

第一章 MATLAB及其工作环境介绍 1.1 MATLAB简介 MATLAB是matrix和laboratory前三个字母的缩写,意思是实验室矩阵。MATLAB 语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,经过十多年的发展与完善,MATLAB已发展成为由MATLAB语言、MATLAB工作环境、MATLAB图象处理系统、MATLAB数学函数库和MATLAB 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的体系。MATLAB由“主包”和三十多个扩展功能和应用学科性的工具箱组成。 MATLAB具有以下基本功能: ●数值计算功能 ●符号计算功能 ●图形处理及可视化功能 ●可视化建模及动态仿真功能 MATLAB语言是以矩阵计算为基础的程序设计语言,语法规则简单易学。其指令格式与数学表达式非常相近,用MATLAB编写程序犹如在便笺上列写公式和求解,因而被称为“便笺式”的编程语言。另外,MATLAB还具有功能丰富和完备的数学函数库及工具箱,大量繁杂的数学运算和分析可通过调用MATLAB函数直接求解,大大提高效率,其程序编译和执行速度远远超过了传统的C和FORTRAN语言,因而用MATLAB 编写程序,往往可以达到事半功倍的效果。在图形处理方面,MATLAB可以给数据以二维、三维乃至四维的直观表现,并在图形色彩、视角、品性等方面具有较强的渲染和控制能力,使技术人员对大量原始数据的分析变得轻松和得心应手。 MATLAB的上述特点,使它深受工程技术人员及科技专家的欢迎,并成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。目前MATLAB已成为国际上公认的最优秀的科技应用软件。 1.2 MATLAB的工作环境介绍 一、MATLAB的工作环境

Matlab 上机题及答案

1 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。 for m=100:999 m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 m3=rem(m,10); %求m的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end 2.从键盘输入若干个数,当输入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):'); end if (n > 0) sum mean=sum/n end 3. 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求[1,500]之间的全部完数。 for m=1:500 s=0; for k=1:m/2 if rem(m,k)==0 s=s+k; end end if m==s disp(m); end end 4. 从键盘上输入数字星期,在屏幕上显示对应英文星期的单词。 function week n=input('input the number:'); if isempty(n) errror('please input !!')

end if n>7|n<1 error('n between 1 and 7') end switch n case 1 disp('Monday') case 2 disp('Tuesday') case 3 disp('Wednesday') case 4 disp('Thursday') case 5 disp('Friday') case 6 disp('Saturday') case 7 disp('Sunday') end 5. 某公司销售电脑打印机的价格方案如下: ()如果顾客只买一台打印机,则一台的基本价格为$150。 ()如果顾客购买两台以上打印机,则第二台价格为$120。 ()第三台以后,每台$110。 写一段程序分别计算出购买1--10台打印机所需的钱数。打印机台数可以在程序开始处指定,或通过input命令读入。运行程序,计算出购买10台打印机的总价格。 写出程序,生成分别购买1--10台打印机所需价格的图表(使用fprintf命令输出图表,不允许手算)。 x=input('请输入购买的打印机台数:'); for m=1:x if m<=1 y(m)=150*m; elseif m<=2 y(m)=150+120*(m-1); else y(m)=150+120+110*(m-2); y(1,m)=y(m); end end y(x) plot(1:m,y,'r*--')

河南城建学院MATLAB上机实验答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:?变量名必须以字母开头,只能由字母、数字或下划线组成。 ?变量名区分大小写。 ?变量名不能超过63个字符。 ?关键字不能作为变量名。 ?最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector. 线性等分函数 LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float: double, single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式

MATLAB上机题汇总(基本题,抽3题)合肥学院

1设置matlab 的工作环境,将工作目录设置为d:\work ,添加搜索目录d:\example 2在matlab 的命令窗口里完成如下计算,其中t 的值分别取-1,0,1,表达式如下: 4/3)2 t y e π-= 3自行产生一个5行5列的数组,得到最中间的三行三行矩阵。 4用magic 产生一个5*5的矩阵,将这个矩阵的第二行与第三行互换位置 5求方程组的根 x 1+4x 2-3x 3=2 2x 1+5x 2-x 3=11 x 1+6x 2+x 3=12 6已知:一个多项式的系数向量是p=[1 -6-72 -27],求这个多项式的根。 7已经两个多项式的系数分别是:[1 2 3 4]和[1 4 9 16],请求这两个多项式的乘积,及商和余数。 8给定一个多项式的根是[-5 -3+4i -3-4i],求原来的多项式 9 A=[2 3 4; 1 5 7; 6 2 5] 用什么函数,保证第一列排序的时候,其他列跟着变化。最后的结果是: [1 5 7; 2 3 4; 6 2 5] 10补充题:电路分析 电路分析常常涉及到对方程组的求解,这些方程常常是利用描述电流进入和离开节点的电流方程,或者描述电路中网络回路上的电压的电压方程得出的。下图描述了3个回路电压的方程

方程式如下: 11121222132423432 532()0()()0()0V R I R I I R I I R I R I I R I I R I V -++-=??-++-=??-++=? 假设5个电阻值为已知,2个电压值也为已知,求3个电流值。 11自行产生一个5行5列的数组,用两种方法得到最中间的三行三行矩阵。 12根据a=reshape(-4:4,3,3)做一个矩阵,然后(1)取出所有大于0的元素构成一个向量(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)(2)将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。(思考:大于0的正常显示,小于等于0的用-10来表示) 13建立如下一个元胞数组,现在要求计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。 a={pascal(4),'hello';17.3500,7:2:100} 14建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个阶段的分数。问题是: 问题1,如何找到第2个人的分数并显示出来 问题2,如何找到第2个人的每门课程3个阶段的平均分数并显示出来 问题3,全班同学(指这3个学生)的10门课程的每门课程的平均分如何计算出来?要求放到一个数组里。 问题4,找到这个班所有同学的姓名放到一个元胞数组里 15给定一个图像文件,格式是jpg ,通过inportdata 引入这个文件,查看引入后数据保存是一个数组,是100*100*3的一个数组,这是一个三维的数组,表明有100*100个点,每个点有RGB 三个方面决定的。现在,要求将这些点的中间部分30个象素宽度的正方形用黑点表示。 16手动构造一个长宽页是1000*1000*3的图像,每个图像的点有三个0-255之间的随机值构成。然后使用image 函数显示这个图像,再用imwrite 函数保存这个图像,使这个图像用图片浏览器也能够查看。 17给定一个矩阵 a = 1 2 3 4 5 6 编写一个M 函数,要求输入是a ,输出有三个:平均数,标准差,秩。程序运行

MATLAB上机实验练习题答案

数学建模 MATLAB上机实验练习题 1、给出一个系数矩阵A[234;541;132],U=[123],求出线性方程组的一个精确解。 2、给出两组数据x=[00.30.81.11.62.3]’y=[0.820.720.630.600.550.50]’,我们可以简单的 认为这组数据在一条衰减的指数函数曲线上,y=C1+C2e-t通过曲线拟合求出这条衰减曲线的表达式,并且在图形窗口画出这条曲线,已知的点用*表示。 3、解线性方程 4、通过测量得到一组数据: 5、已知一组测量值 6、从某一个过程中通过测量得到: 分别采用多项式和指数函数进行曲线拟合。 7、将一个窗口分成四个子窗口,分别用四种方法做出多峰函数的表面图(原始数据法,临近 插值法,双线性插值法,二重三次方插值法) 8、在同一窗口使用函数作图的方法绘出正弦、余弦、双曲正弦、双曲余弦。分别使用不同的 颜色,线形和标识符。 9、下面的矩阵X表示三种产品五年内的销售额,用函数pie显示每种产品在五年内的销售额

占总销售额的比例,并分离第三种产品的切片。 X=19.322.151.6 34.270.382.4 61.482.990.8 50.554.959.1 29.436.347.0 10、对应时间矢量t,测得一组矢量y t00.30.8 1.1 1.6 2.3 y0.50.82 1.14 1.25 1.35 1.40 采用一个带有线性参数的指数函数进行拟合,y=a0+a1e-t+a2te-t,利用回归方法求出拟合函数,并画出拟合曲线,已知点用圆点表示。 11、请创建如图所示的结构数组(9分) 姓名编号指标 江明顺071023身高:176,体重:82 于越忠060134身高:168,体重:74 邓拓050839身高:182,体重:77 12、创建如图所示的元胞数组。(9分) 13、某钢材厂从1990年到2010年的产量如下表所示,请利用三次样条插值的方法计算1999年该钢材厂的产量,并画出曲线,已知数据用‘*’表示。要求写出达到题目要求的MATLAB 操作过程,不要求计算结果。 年份19901992199419961998200020022004200620082010 产量(万吨)75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633256.344 14、在一次化学动力学实验中,在某温度下乙醇溶液中,两种化合物反应的产物浓度与反应时间关系的原始数据如下,请对这组数据进行三次多项式拟合,并画出拟合曲线,已知数据如下。 time=[2.55.07.510.013.017.020.030.040.050.060.070.0] res=[0.290.560.771.051.361.522.002.272.813.053.253.56]

Matlab上机实验答案 (1)

Matlab上机实验答案 实验一MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/200)/(1+exp(2)) z1 = 0.2375 >> x=[2 1+2i;-0.45 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = 0.7120 - 0.0253i 0.8968 + 0.3658i 0.2209 + 0.9343i 1.2041 - 0.0044i 2.9,,2.9, 3.0

>> a=-3.0:0.1:3.0; >> z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) (>> z33=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 0.7388 + 3.2020i 0.7696 + 3.2020i 0.7871 + 3.2020i 0.7920 + 3.2020i 0.7822 + 3.2020i Columns 6 through 10 0.7602 + 3.2020i 0.7254 + 3.2020i 0.6784 + 3.2020i 0.6206 + 3.2020i 0.5496 + 3.2020i Columns 11 through 20 0.4688 + 3.2020i 0.3780 + 3.2020i 0.2775 + 3.2020i 0.2080 + 3.2020i 0.0497 + 3.2020i

Matlab编程与应用习题和一些参考答案

Matlab 上机实验一、二 3.求下列联立方程的解???????=+-+-=-+=++-=--+4 1025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; >> b=[4;4;9;4]; >> c=a\b 4.设???? ??????------=81272956313841A ,??????????-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。 >> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8]; >> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C1=A*B' >> C2=A'*B >> C3=A.*B >> inv(C1) >> inv(C2) >> inv(C3) 5.设 ????? ?++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。 >> x=linspace(0,2*pi,101); >> y=cos(x)*(0.5+(1+x.^2)\3*sin(x)); >> plot(x,y,'r') 6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var ) a=randn(8,6) mean(a) var(a) k=mean(a) k1=mean(k) i=ones(8,6) i1=i*k1 i2=a-i1 i3=i2.*i2 g=mean(i3) g2=mean(g) 或者 u=reshape(a,1,48); p1=mean(u)

MATLAB上机题汇总(较难题,抽1题)合肥学院

1.根据下面的方程绘制图形,y=cos(x)+x ,x 取值-pi-pi ,然后用多项式拟合函数进行拟合。 2.要求编写一个函数文件,将一个给定图片的所有颜色都变深(变深多少自己斟酌),其中黑色为0,白色为255 3.根据下面的方程绘制图形,y=cos(2x)+sin(2x),然后用5次多项式进行拟合。 4.要求编写一个M 函数,完成下列函数的求解:y =sin (x );y =sin (x +pi );y =sin (x +pi /3);y =sin (x +pi/2)自变量x 的变化范围从-pi 到pi ,要求四个图像画在同一个图形窗体中。 5.M 文件的编写 计算分段函数 ?????≠+=+++=10101)1cos(2x x x x x x x y 6.函数文件的编写 编写函数文件,求半径为r 的圆的周长和面积。

7.题目见教材p85,其中的数据可以给出文本文件或者由下面的式子表达 a=[10*rand(24,1)+15,1*rand(24,1)+30,2*rand(24,1)+45],这是24行3列的一个矩阵,第一列表示温度,第二列表示湿度,第三列表示气压。要求如下: (1) 将温度数据取出 (2) 找出一天中最高温度 (3) 按温度进行从小到大(默认)排序 (4) 求出最高温度的时刻 (5) 按温度进行从大到小排序 8.已知Fibonacci (斐波那)数列由式子??=+=--4,3,21k a a a k k k 可以生成,其中初值为121==a a ,试编写出生成某项Fibonacci 数值的MATLAB 函数,并求20a 的值。 9.编写M 函数,判断给定的三边能够构成一个三角形?并求其周长 10.给定一个声音文件,如1.wav ,引入这段声音,将音量改为2倍之后,再保存成2.wav

MATLAB期末上机试题带答案

MATLAB 期末上机考试试题带答案版 姓名: 学号: 成绩: 1.请实现下图: 50 100 150 200 250 -1 -0.8-0.6-0.4-0.200.20.40.60.81x y y=sin(x) x=linspace(0,8*pi,250); y=sin(x); plot(x,y) area(y,-1) xlabel('x') ylabel('y') title('y=sin(x)') 2.请实现下图: x=linspace(0,2*pi,100); y1=sin(x); subplot(2,2,1) plot(x,y1,'k--') grid on xlabel('x') ylabel('y') title('sin(x)') legend('y=sin(x)') y2=cos(x);

subplot(2,2,2) plot(x,y2,'r--') grid on xlabel('x') ylabel('y') title('cos(x)') legend('y=cos(x)') y3=tan(x); subplot(2,2,3) plot(x,y3,'k-') grid on xlabel('x') ylabel('y') title('tan(x)') legend('y=tan(x)') y4=cot(x); subplot(2,2,4) plot(x,y4) grid on xlabel('x') ylabel('y') title('cot(x)') legend('y=cot(x)') 3.解方程组: a=[3 2 1;1 -1 3;2 4 -4]; b=[7;6;-2] ; x=a\b 4.请实现下图: 2 4 6 8 10 12 14 -1-0.8-0.6-0.4-0.200.20.40.60.81x y '自己的姓名' sin(x)sin(2*x) x=linspace(0,4*pi,1000); y1=sin(x);

Matlab上机实验二

1. 对Runge 函数2()1/(125)R x x =+在区间[-1,1]作下列插值逼近,并和()R x 的图 像进行比较,并对结果进行分析。 (1) 用等距节点1,0.1,020i x ih h i =-+=≤≤,绘出它的20次Newton 插值 多项式的图像。 (2) 用节点21cos()(0,1,2...,20)42 i i x i π+==,绘出它的20次Lagrange 插值多项式的图像。

(3) 用等距节点1,0.1,020i x ih h i =-+=≤≤,绘出它的分段线性插值函数 的图像。 (4) 用等距节点1,0.1,020i x ih h i =-+=≤≤,绘出它的三次自然样条插值 函数的图像。

结果分析: 等距节点的Newton插值在边界附近呈现不收敛的状态,也就是所谓的Runge 现象。这是因为被插函数2 ()1/(125) R x x =+及其任意阶导数并不是一致有界的。 由Lagrange插值的余项 (n1) 1 () ()()()() (1)! n n n f R x f x L x x n ξ ω + + =-= + ,由于高阶导数值 非常大,在等距节点的高次插值中,余项的值很大,亦即误差特别大,表现为Runge现象。在实际中,除非被插函数的光滑性十分好,否则等距节点的高次插值一般不使用。 切比雪夫多项式零点插值没有出现Runge现象,这是因为对于Lagrange插 值的余项 (n1) 1 () ()()()() (1)! n n n f R x f x L x x n ξ ω + + =-= + ,切比雪夫多项式零点插值可以 将 1() n x ω +项控制在 1 2n 以下( 1 [1,1] max() n x x ω + ∈- = 1 2n ),由此可得切比雪夫多项式零点 插值的误差范围 (n1) [1,1] () max() 2(1)! n n x f R x n ξ + ∞ ∈- ≤ + ,比等距节点的高次插值小很多,因此 对于被插函数的光滑性要求要比等距节点的插值也低很多。 分段低次线性插值是常用的一种插值方式。线性插值的优点在于计算量小,但是从图中可以看出,其光滑性不够。三次样条插值要求其一阶导数是连续的,因此其准确性好,光滑性也较优。