实验一Matlab基本操作
题目:
1.利用基本矩阵产生 3x3 和15x8 的单位阵,全 1 阵,全0 阵,均匀分布的随
机阵([-1,1]之间),正态分布随机阵(方差4,均值1)
2.利用diag()函数和rot90()产生下列矩阵:
然后求解a 阵的逆矩阵aa 及b 阵的特征值和对应特征向量,并利用reshape 将
aa 阵变换成行向量。
3.产生一均匀分布在(-5,5)随机阵(50x2),精确到小数点后一位。
4.编程实现当α∈[-π,π],间隔为1o 时,求解正弦和余弦的值,并利用plot() 函数绘制正弦,余弦曲线。
5.利用rand 函数产生(0,1)间均匀分布的10x10 随机矩阵a,然后统计a 中大于等于0.6 的元素个数。
6.利用randn 函数产生均值为0,方差为 1 的10x10 正态分布随机阵,然后统计其
中大于-0.5,小于0.5 的元素个数。
7.编程实现下表功能:
8.有一矩阵a,找出矩阵中其值大于 1 的元素,并将他们重新排列成列向量b。
9.在一保定市区9 月份平均气温变化测量矩阵temp_Baoding_sep 中(48x30),存在有奇异值(大于42o C,小于0o C),编程实现删除奇异值所在的行。
10.在给定的100x100 矩阵中,删除整行内容全为0 的行,删除整列内容全为0 的列。
程序:
1.
%3X3矩阵
a1=eye(3)
a2=ones(3)
a3=zeros(3)
a4=1-2*rand(3) a5=2*randn(3)+1 %15X8矩阵
b1=eye(15,8)
b2=ones(15,8)
b3=zeros(15,8)
b4=1-2*rand(15,8) b5=2*randn(15,8)+1
运行结果:
a1 =
1 0 0
0 1 0
0 0 1 a2 =
1 1 1
1 1 1
1 1 1
a3 =
0 0 0
0 0 0
0 0 0
a4 =
-0.9003 0.0280 0.0871
0.5377 -0.7826 0.9630
-0.2137 -0.5242 -0.6428 a5 =
0.1349 1.5754 3.3783
-2.3312 -1.2929 0.9247
1.2507 3.3818 1.6546
b1 =
1 0 0 0 0 0 0 0
………………
b2 =
1 1 1 1 1 1 1 1
………………
b3 =
0 0 0 0 0 0 0 0
………………
b4 =
0.1106 0.7222 -0.3443 0.6983 -0.0682 0.6541 -0.9767 0.0778 ………………
b5 =
1.3493 -0.3836 0.6866
2.1826 2.3542 1.4241 0.4688 -1.4346
………………
2.
%生成a矩阵
x=diag([2,-7,8]); xx=diag([3,5],-1); a=rot90(x+xx) %生成b矩阵
x=diag([2 5 8]);
xx=rot90(diag([7 0 4])); b=x+xx
% a阵的逆矩阵aa
aa=inv(a)
%将aa阵变换成行向量aah=reshape(aa,1,9) %b阵的特征值和对应特征向量d=eig(b)
[V,D]=eig(b)
运行结果:
a =
0 0 8
0 -7 5
2 3 0 b =
2 0 4
0 5 0
7 0 8
aa =
-0.1339 0.2143 0.5000
0.0893 -0.1429 0
0.1250 0 0
aah =
-0.1339 0.0893 0.1250 0.2143 -0.1429 0 0.5000 0 0 d =
-1.0828
11.0828
5.0000
V =
-0.7921 -0.4030 0
0 0 1.0000
0.6104 -0.9152 0 D =
-1.0828 0 0
0 11.0828 0
0 0 5.0000
3.
a=5-10*rand(50,2);
b=round(10*a)/10;
c=num2str(b,'%+10.1f') 运行结果:
c =+0.0 -0.5 ………………
4.
alpha=-pi:pi/180:pi;
x=sin(alpha)
y=cos(alpha) %画曲线
plot(alpha,x,'b-') hold on
plot(alpha,y,'r-')
运行结果:
x =
Columns 1 through 15
-0.0000 -0.0175 -0.0349 -0.0523 -0.0698 -0.0872 -0.1045 -0.1219 -0.1392 -0.1564 -0.1736 -0.1908 -0.2079 -0.2250 -0.2419
………………
y =
Columns 1 through 15
-1.0000 -0.9998 -0.9994 -0.9986 -0.9976 -0.9962 -0.9945 -0.9925 -0.9903 -0.9877 -0.9848 -0.9816 -0.9781 -0.9744 -0.9703
………………
5. a=rand(10)
total=sum(sum(a>=0.6))
运行结果:
a =
0.0534 0.8150 0.4740 0.0287 0.4516 0.3527 0.6210 0.4116 0.6641 0.8045
0.3567 0.6700 0.9090 0.8121 0.9566 0.1879 0.2460 0.2859 0.7241 0.8289
………………
total =
35
6. a=randn(10)
total=sum(sum(and(a<.5,a>-.5)))
运行结果:
a =
-0.4326 -0.1867 0.2944 -0.3999 -1.6041 -1.0106 0.0000 0.5689 0.6232 0.3899 -1.6656 0.7258 -1.3362 0.6900 0.2573 0.6145 -0.3179 -0.2556 0.7990 0.0880 ………………
total =
39
7.
%输入a和b
a=input('please input a:');
b=input('please input b:');
%分支结构
if and(a<1,b<=.5)
disp('case1')
elseif and(a<1,b>.5) disp('case2')
elseif and(a>1,b<=.5) disp('case3')
else
disp('case4')
end
运行结果:please input a:3 please input b:0.2 case3
8.
a=rand(10)+0.2;
i=find(a>1);
b=a(i)
运行结果:b =
1.1501
1.0913
…………
9. temp_sep=num2str(round(10*(rand(48,30)*20+15)/10));
temp_sep(120)=-1;
temp_sep(201)=50;
[i,j]=find(temp_sep>42);
[i,j]=find(temp_sep<0);
temp_sep(i,:)=[]
运行结果:
Warning: Out of range or non-integer values truncated during conversion to character.
temp_sep =
33 35 19 15 24 19 23 32 17 30 17 23 19 31 18 24 21 27 31 17 35 23 27 29 34 28 22 28 30 28 19 34 26 23 26 24 25 28 29 31 31 35 31 31 26 29 32 30 30 27 20 25 22 32 26 19 20 29 21 19 ………………
10. %生成10X10矩阵,包含全零行,全零列
a=round(10*rand(10));
a(4,:)=0;
a(:,7)=0;
%查找全零行,全零列
hang=~any(a');
lie=~any(a);
hang_hao=find(hang);
lie_hao=find(lie);
%删除!
a(hang_hao,:)=[]
a(:,lie_hao)=[]
运行结果:
a =
7 2 4 9 6 7 0 5 9 6
8 6 8 4 7 0 0 8 3 3
………………
a =
7 2 4 9 6 7 5 9 6
8 6 8 4 7 0 8 3 3
………………。