matlab考试题答案2007年

更新时间:2023-11-09 06:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MATLAB语言2007年笔试考试答案

一、

选择题(每题5分,共30分)

1、A C B B A D 二、

程序填空和改错(每空5分,共20)

抛物线的方程为y?ax2?cx,输入c后,绘制该曲线,寻找曲线的最小值和对应的x值。小明编写程序如下: clc;clear;close all; c=input('c='); a=1;

x=-2:0.1:2;

xnum=length(x) or xnum=size(x,2); %(1)对变量xnum赋为数组x的个数 y=zeros(1,xnum);

y=a*x^2+c*x;→ y=a*x.^2+c*x; %(2)按照函数形式对y赋值 figure;

plot(x,y) xlabel('x');ylabel('y'); [ymin,Imin]=min(y);

xmin=x(ymin);→ xmin=x(Imin); %(4)找到最小函数值对应的x值 三、

clc;clear;close all; A=[1 2 3;4 5 6;7 8 9];

OprNo=menu('OprSel','1','2','3'); %生成菜单,3分,标题可任意取名 switch OprNo

%也可用if esleif end

%(3)绘制曲线

第1页 共4页

第2页 共4页

case 1

B=reshape(A,prod(size(A)),1) %2分 case 2

C=A(:,1)+A(:,2) %2分 case 3

D=trace(A) %2分 otherwise

error('无效操作'); %不作要求 end

四、

function y=NewtonEqu(x)

y=x-(x^2+2*x-3)/(2*x+2); %函数定义,2分

clc;clear;close all; x0=0;

x1=NewtonEqu(x0); err=1e-4 k=1; xrec=[x0 x1];

while and(abs(x1-x0)>err,k<=100) %使用不定循环,4分,条件正确2分 %或者使用固定100次的for循环,满足条件就break退出 x0=x1;

x1=NewtonEqu(x0); %循环条件更新2分, k=k+1;

xrec=[xrec x1]; %记录每次迭代的x不作要求

end k x1

五、

clc;clear;close all;

%构建结构阵列,5分,也可用赋值语句逐个赋值 Student=struct('Name',{'xiaoming' 'xiaohong' 'xiaojun'},...

'Gym',{85 75 95},'Eng',{90 95 80},'Phy',{93 80 85},'Math',{88 90 70}); %加权求平均,并排序,7分 w=[1 2 3 2.5]; w=w/sum(w);

StuNum=length(Student); SynScore=zeros(1,StuNum); for i=1:StuNum

SynScore(i)=Student(i).Gym*w(1)+Student(i).Eng*w(2)... +Student(i).Phy*w(3)+Student(i).Math*w(4); end

[SynScore,I]=sort(SynScore);%从小到大排序 %显示结果,3分

disp(['Name',' ','Score']);%使用sprintf控制格式也可 for i=1:StuNum

disp([Student(I(i)).Name,' ',num2str(SynScore(i))]); end 六、

clc;clear;close all;

第3页 共4页

第4页 共4页

%输入题设条件,3分 Us=10; f0=2; fs=10; snap_num=256;

R1=2;R2=4;R3=4;R4=4;R5=2;R6=12;R7=12; %构建AU=b矩阵方程,5分 a11=1/R3+1/R7+1/(R1+R2);a12=-1/R3; a21=1/R3;a22=-1/R3-1/(R4+R5)-1/R6; A=[a11 a12;a21 a22]; b=[Us/(R1+R2);0];

%求Uab以及写出Ub正弦电压形式,3分 U=A\\b; Uab=U(1)-U(2); Uab Ub=U(2);

Ub_sin=Ub*sin(2*pi*f0*[0:snap_num-1]/fs);

%作FFT,绘制分图,4分,不要求学生写出时间序列和频率序列 fseq=[0:snap_num-1]*fs/snap_num; subplot(2,1,1);plot([0:snap_num-1],Ub_sin); xlabel('t(s)');ylabel('Uc(V)')

subplot(2,1,2);plot(fseq,abs(fft(Ub_sin))); xlabel('f(Hz)');ylabel('Frequency Magnitude');

本文来源:https://www.bwwdw.com/article/upyv.html

Top