matlab必做题解析Word文件下载.docx
《matlab必做题解析Word文件下载.docx》由会员分享,可在线阅读,更多相关《matlab必做题解析Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
5求方程组的根
x1+4x2-3x3=2
2x1+5x2-x3=11
x1+6x2+x3=12
A=[14-3;
25-3;
161]
Y=[2;
11;
12];
X=A\Y
inv(A)*Y
6已知:
一个多项式的系数向量是p=[1-6-72-27],求这个多项式的根。
p=[1-6-72-27];
roots(p)
7已经两个多项式的系数分别是:
[1234]和[14916],请求这两个多项式的乘积,及商和余数。
A=[1234];
B=[14916];
conv(A,B)
[q,r]=deconv(A,B)
8给定一个多项式的根是[-5-3+4i-3-4i],求原来的多项式
r=[-5,-3+4i,-3-4i];
p=poly(r);
poly2str(p,'
x'
)
9A=[234;
157;
625]
用什么函数,保证第一列排序的时候,其他列跟着变化。
最后的结果是:
[157;
234;
A=[234;
157;
[B,index]=sort(A(:
1))
A=A(index,:
)%index是经过顺序排列后的原来第一列的元素的顺序。
10补充题:
电路分析(删除)
电路分析常常涉及到对方程组的求解,这些方程常常是利用描述电流进入和离开节点的电流方程,或者描述电路中网络回路上的电压的电压方程得出的。
下图描述了3个回路电压的方程
方程式如下:
假设5个电阻值为已知,2个电压值也为已知,求3个电流值。
11自行产生一个5行5列的数组,用两种方法得到最中间的三行三行矩阵。
(删除)
>
a=reshape(1:
25,5,5);
I=[234];
J=[234];
a(I,J)
ans=
71217
81318
91419
a(2:
4,2:
4)
12根据a=reshape(-4:
4,3,3)做一个矩阵,然后
(1)取出所有大于0的元素构成一个向量(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)
(2)将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。
(思考:
大于0的正常显示,小于等于0的用-10来表示)
a=reshape(-4:
4,3,3)
index=a>
b=a(index)
c=a.*index
13建立如下一个元胞数组,现在要求计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。
a={pascal(4),'
hello'
;
17.3500,7:
2:
100}
a{1}(4,2)+a{2}+a{3}
(2)+a{4}
(2)
14建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个阶段的分数。
问题是:
问题1,如何找到第2个人的分数并显示出来
问题2,如何找到第2个人的每门课程3个阶段的平均分数并显示出来
问题3,全班同学(指这3个学生)的10门课程的每门的平均分如何计算出来?
要求放到一个数组里。
问题4,找到这个班所有同学的姓名放到一个元胞数组里
stud=struct('
name'
{'
Jim'
'
Henry'
Smith'
},'
age'
{22,18,26},'
score'
{int16(rand(3,10)*100),int16(rand(3,10)*100),int16(rand(3,10)*100)})
①
stud
(2).score
②
mean(stud
(2).score)
③meanscore=(mean(stud
(1).score)+mean(stud
(2).score)+mean(stud(3).score))/3
④
cname={stud
(1).name,stud
(2).name,stud(3).name}
15给定一个图像文件,格式是jpg,通过importdata引入这个文件,查看引入后数据保存是一个数组,是100*100*3的一个数组,这是一个三维的数组,表明有100*100个点,每个点有RGB三个方面决定的。
现在,要求将这些点的中间部分30个象素宽度的正方形用黑点表示。
把给定的图片复制工作目录,matlab安装目录下的work文件夹,比如文件名为“flower.jpg"
imgdata=importdata('
flower.jpg'
imgdata(35:
75,35:
75,:
)=0;
image(imgdata)
16手动构造一个长宽页是1000*1000*3的图像,每个图像的点有三个0-255之间的随机值构成。
然后使用image函数显示这个图像,再用imwrite函数保存这个图像,使这个图像用图片浏览器也能够查看。
imgdata=uint8(255*rand(1000,1000,3));
imwrite(imgdata,'
myimg.jpg'
jpg'
17给定一个矩阵
a=
123
456
编写一个M函数,要求输入是a,输出有三个:
平均数。
标准差,秩。
程序运行后分析其性能指标(主要从时间上分析)(删除)
mymean.m
functiony=mymean(a)
[h,w]=size(a);
s=0;
fori=1:
h
forj=1:
w
s=s+a(i,j);
end
end
y=s/(i*j);
18编写一个M函数,将一个给定图片文件里的白色全部换成另一种颜色,比如说:
将白色转成黑色。
changecolor.m
functionchangecolor()
imgdata=imread('
[width,height,page]=size(imgdata);
width
height
if(imgdata(i,j,1)==255&
&
imgdata(i,j,2)==255&
imgdata(i,j,3)==255)
imgdata(i,j,1)=0;
imgdata(i,j,2)=0;
imgdata(i,j,3)=0;
19要求编写一个M函数文件,完成求三角函数,x变化范围从-pi到pi,求出相应的y的值,并画出图,然后使用编译器生成EXE,脱离MATLAB环境运行。
x=-pi:
pi/1000:
pi;
y=sin(x)
plot(x,y)
20定义一个2*2的元胞数组,放入相应的数据,然后保存到MAT文件中,清除内存后,然后再调入内存。
查看数据是否改变。
A={2,3;
1:
5,'
}
save('
data'
clear
load('
21(删除)实验用图像:
pic.jpg.(注意,此图片是灰度图片,本题是针对灰度图片的处理)使用imread函数将图像读入Matlab。
根据产生灰度变换函数T1,使得:
0.3rr<
0.35
d=0.105+2.6333(r–0.35)0.35≤r≤0.65
1+0.3(r–1)r>
0.65
用T1对原图像pic.jpg进行处理,查看结果。
并打印出来。
sourimg=imread('
sun.jpg'
r=im2double(sourimg);
desimg=[r<
0.35].*r*0.3+[r<
=0.65&
r>
=0.35].*(0.105+2.6333*(r-0.35))+[r>
0.65].*(1+0.3*(r-1));
imshow(desimg)
22(删除)自己查阅资料找出中国近10年人口数,制成txt文件,格式如下:
199011.3456
199112.3566
…
然后将数据引入到内存,并绘制出相应的人口变化曲线图。
a=load('
data.txt'
x=a(:
1);
y=a(:
2);
plot(x,y)
23使用通用读函数importdata读入一个声音文件hello.wav,将所有的数据反序排列后,播放声音,听效果,最后,将数据保存成另外的的声音文件名helloRev.wav。
s=importdata('
hello.wav'
sound(s.data,s.fs);
n=length(s.data);
s.data=s.data(n:
-1:
1);
wavwrite(s.data,s.fs,'
helloRev.wav'
24海尔,联想,方正近四年销售的数据如下。
data=[3000,2334,3444,6663;
2342,3422,2111,4453;
3232,2334,5433,3500];
请做出如下图表。
bar(data)
title('
各品牌销售比较图'
legend('
2006'
2007'
2008'
2009'
set(gca,'
Xticklabel'
['
海尔'
;
'
联想'
方正'
])
25已知在三维空间里,x,y,z的变化规律如下,试用plot3来做出其图形。
z=0:
0.1:
40;
x=cos(z).^2;
y=sin(z)+cos(z);
z=0:
x=cos(z).^2;
y=sin(z)+cos(z)
plot3(x,y,z)
26有数据如下:
x=[-3-2.5-2-1.5-1-0.500.511.522.53];
y=[-0.14112-0.59847-0.9093-0.99749-0.84147-0.4794300.479430.841470.997490.90930.598470.14112];
数据点如下图中兰方块所示,要求编写函数对原数据进行linear和spline一次插值运算,得到结果如下:
27在0-450范围内,x,y均每隔50产生一个数,这样产生一个10*10网格区域,用randn函数来产生一个10*10的随机矩阵(标准差是10,平均数是20),使用surf来作出这个三维的曲面图。
然后使用interp2进行二次插值,插值函数使用三次杨条插值函数,在原来的第一个分隔区域里产生5个小区域,并最后画出图形。
28根据下面的方程绘制图形,y=sin(x)+x,然后再分别用多项式拟合函数和用拟合工具进行拟合。
x=0:
.1:
10;
y=sin(x)+x;
p5=polyfit(x,y,5);
y5=polyval(p5,x);
p8=polyfit(x,y,8);
y8=polyval(p8,x);
plot(x,y,'
g'
x,y5,'
r'
x,y8,'
b'
legend('
最初'
拟合5次'
拟合6次'
title('
拟合函数'