Matlab实验二
(实验报告中附上每题的主要程序和结果)
实验二
(实验报告中附上每题的主要程序和结果)
A
1.创建double类型的变量,并进行计算。
(1)a=87,b=190,计算a+b、a-b、a*b。
>> a=87
a = 87
>> b=190
b = 190
>> a+b
ans = 277
>> a-b
ans = -103
>> a*b
ans = 16530
(2)创建 uint8 类型的变量,数值与(1)中的相同,进行相同的计算。
>> a=uint8(87)
a = 87
>> b=uint8(190)
b = 190
>> a+b
ans = 255
>> a-b
ans = 0
>> a*b
ans = 255
2.计算∶
(1)sin(60°)
(2)e³
(3)cos( 3 4 π \frac{3}{4}π 43π)
>> sind(60)
ans = 0.8660
>> exp(3)
ans = 20.086
>> cos(pi*3/4)
ans = -0.7071
3.设u=2、v=3,计算∶
(1) 4 u v l o g v 4\frac{uv}{logv} 4logvuv
(2) ( e u + v ) 2 v 2 − u \frac{(e^u+v)^2}{v^2-u} v2−u(eu+v)2
(3) ( u − 3 v ) u v \frac{\sqrt(u-3v)}{uv} uv(u−3v)
>> u=2
u = 2
>> v=3
v = 3
>> 4*u*v/(log(v))
ans = 21.846
>> (exp(u)+v)^2/(v^2-u)
ans = 15.419
>> sqrt(u-3*v)/(u*v)
ans = 0 + 0.4410i
5.判断下面语句的运算结果。
(1)4<20
(2)4<=20
(3)4=20
(4)4~=20
(5)‘b’<B’
>> 4<20
ans = 1
>> 4<=20
ans = 1
>> 4==20
ans = 0
>> 4~=20
ans = 1
>> 'b'<'B'
ans = 0
6.设a=39、b=58、c=3、d=7,判断下面表达式的值。
(1) a>b
(2) a<c
(3) a>b&&b>c
(4) a=d
(5)a|b>c
(6)~~d
>> a=39
a = 39
>> b=58
b = 58
>> c=3
c = 3
>> d=7
d = 7
>> a>b
ans = 0
>> a<c
ans = 0
>> a>b&&b>c
ans = 0
>> a==d
ans = 0
>> a|b>c
ans = 1
>> ~~d
ans = 1
B
1、使用方括号“[ ]”操作符产生一个列向量x,内容为1,2,9,8
>> x=[1;2;9;8]
x =
1
2
9
8
2、使用方括号“[ ]”操作符产生一个行向量x,内容为1,2,9,8
>> x=[1,2,9,8]
x =
1 2 9 8
3、使用冒号“:”操作符产生一个行向量x,内容为9,7,5,3,1
>> x=[9:-2:1]
x =
9 7 5 3 1
4、使用方括号“[ ]”操作符产生一个二维数组A,第1行为9,3,7,1;第2行为1,4,0,7
>> A=[9,3,7,1;1,4,0,7]
A =
9 3 7 1
1 4 0 7
5、逐句输入并运行以下命令,观察并记录每一步的运行结果,解释每一条语句的含义。
x=[3,2,0;-6,5,1];
Inx=find(x>=1)
[r, c]=find(x>=1)
sum(x>=2)
>> x=[3,2,0;-6,5,1]%创建一个二维数组,第一行为3,2,0,第二行-6,5,1
x =
3 2 0
-6 5 1
>> Inx=find(x>=1)%返回x中大于等于1的元素的下标,按列索引,返回列向量
Inx =
1
3
4
6
>> [r, c]=find(x>=1)%返回x中大于等于1的元素行坐标和列坐标的向量,(1,1),(1,2),(2,2),(2,3)
r =
1
1
2
2
c =
1
2
2
3
>> sum(x>=2)%统计每列大于等于2的个数
ans =
1 2 0
6、设A=[1,3;2,4],B=[5,6;7,8],则A*B= ____, A.*B= ____。
>> A=[1,3;2,4];
>> B=[5,6;7,8];
>> A*B
ans =
26 30
38 44
>> A.*B
ans =
5 18
14 32
7、在MATLAB命令窗口运行以下语句,回车后结果等于0的是( B )。
A.>>uint8(60.76) B.>>uint8(-60.76) C.>>uint8(1234.567) D.>>uint8(0.76)
8、下列不可作为合法变量名的是( A )。
A.for B.a123 C.H_h D.xyz_2a
9、如果x=1:2:8, 则x(1)和x(4)分别是:1、7
11、要求计算水在温度为0℃、20℃、40℃、60℃、80℃时的黏度,已知水的黏度随温度的变化公式为:
μ
=
μ
0
1
+
a
t
+
b
t
2
\mu=\frac{\mu_0}{1+a t+b t^2}
μ=1+at+bt2μ0
其中μ为0℃水的黏度,值为1.785×10~3。a=0.03368,b=0.000221
(提示,把水的不同温度建立一个向量,再计算)
>> t=[0,20,40,60,80];
>> a=0.03368;
>> b=0.000221;
>> u0=1.785*10^(-3);
>> u=u0./(1+a*t+b*t.^2)
u =
1.7850e-03 1.0131e-03 6.6092e-04 4.6772e-04 3.4940e-04
12、在区间[50,100]上生成随机向量A,满足各元素为整型,均匀分布且长度为20。
>> A=round(rand(1,20)*50+50)
A =
63 78 63 80 50 63 96 76 94 59 54 74 95 79 63 92 88 51 66 59
13、请生成均值为87.5、方差为0.55的正态分布随机向量。
>> x=87.5+sqrt(0.55).*randn(1,100);
>> mean(x)%求均值
ans = 87.488
>> var(x)%求方差
ans = 0.5426
14、解方程组:(请给出解题步骤)
>> A=[2,3,-1;8,2,3;45,3,9]
A =
2 3 -1
8 2 3
45 3 9
>> b=[2;4;23]
b =
2
4
23
>> a=inv(A)
a =
0.032967 -0.109890 0.040293
0.230769 0.230769 -0.051282
-0.241758 0.472527 -0.073260
>> x=a*b
x =
0.5531
0.2051
-0.2784
15、使用zeros函数产生一个3*4的二维数组A,使用ones函数产生一个2*4的二维数组B,将A、B拼接成5*4的二维数组C
>> A=zeros(3,4)
A =
0 0 0 0
0 0 0 0
0 0 0 0
>> B=ones(2,4)
B =
1 1 1 1
1 1 1 1
>> C=[A;B]
C =
0 0 0 0
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
16、使用rand函数产生一个3*4的二维数组A,寻访A矩阵中大于0.3并且小于0.7的所有元素,赋给B
>> A=rand(3,4)
A =
0.426386 0.774643 0.251818 0.046557
0.799538 0.545791 0.489983 0.148796
0.766139 0.329620 0.031150 0.914178
>> B=A(A>0.3&A<0.7)
B =
0.4264
0.5458
0.3296
0.4900
17、已知
t=0:0.1:8*3;
a=(cos(2*t+4.5)3)+(sin(0.2t+14)*4);
a1=randn(1,length(a));
a2=a+a1;
plot(a2)
a2是一个准周期的信号,求每个周期内的信号最大值及所在横轴位置。
r=1:240;
r1=reshape(r,30,8)
代码实现:
t=0:0.1:8*3;
a=(cos(2*t+4.5)*3)+(sin(0.2*t+14)*4);
a1=randn(1,length(a));
a2=a+a1;
plot(a2)
r=1:240;
r1=reshape(r,30,8);
%方法一
[m,p]=max(a2(r1));
m
ind=sub2ind([30 8],p,1:8)
%方法二
%{
[m,ind]=max(a2(r1));
m
[1:8]*30+ind-30
%}
%方法三
%{
max_values=max(a2(r1))
ind=[];
for k=1:1:8
value=max_values(k);
ind(k)=find(a2==value);
end
ind
%}
输出结果:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)