• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    image-20220831164327351

    (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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    image-20220831164348158

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    image-20220831164419896

    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} v2u(eu+v)2

    (3) ( u − 3 v ) u v \frac{\sqrt(u-3v)}{uv} uv( u3v)

    >> 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    image-20220831164827535

    5.判断下面语句的运算结果。

    (1)4<20

    (2)4<=20

    (3)4=20

    (4)4~=20

    (5)‘b’

    >> 4<20
    ans = 1
    >> 4<=20
    ans = 1
    >> 4==20
    ans = 0
    >> 4~=20
    ans = 1
    >> 'b'<'B'
    ans = 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    image-20220831165155349

    6.设a=39、b=58、c=3、d=7,判断下面表达式的值。

    (1) a>b

    (2) a

    (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> a>b&&b>c
    ans = 0
    
    >> a==d
    ans = 0
    
    >> a|b>c
    ans = 1
    
    >> ~~d
    ans = 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    image-20220831165608878

    B

    1、使用方括号“[ ]”操作符产生一个列向量x,内容为1,2,9,8

    >> x=[1;2;9;8]
    x =
    
       1
       2
       9
       8
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    image-20220831170920076

    2、使用方括号“[ ]”操作符产生一个行向量x,内容为1,2,9,8

    >> x=[1,2,9,8]
    x =
    
       1   2   9   8
    
    • 1
    • 2
    • 3
    • 4

    image-20220831170250435

    3、使用冒号“:”操作符产生一个行向量x,内容为9,7,5,3,1

    >> x=[9:-2:1]
    x =
    
       9   7   5   3   1
    
    • 1
    • 2
    • 3
    • 4

    image-20220831171101820

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20220831171319923

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20220831171616691

    >> Inx=find(x>=1)%返回x中大于等于1的元素的下标,按列索引,返回列向量
    Inx =
    
       1
       3
       4
       6
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    image-20220831172143763

    >> [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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    image-20220831172445331

    >> sum(x>=2)%统计每列大于等于2的个数
    ans =
    
       1   2   0
    
    • 1
    • 2
    • 3
    • 4

    image-20220831172802425

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    image-20220831173305267

    7、在MATLAB命令窗口运行以下语句,回车后结果等于0的是( B )。

    A.>>uint8(60.76) B.>>uint8(-60.76) C.>>uint8(1234.567) D.>>uint8(0.76)

    image-20220831173644995

    8、下列不可作为合法变量名的是( A )。

    A.for B.a123 C.H_h D.xyz_2a

    image-20220831173722147

    9、如果x=1:2:8, 则x(1)和x(4)分别是:1、7

    image-20220831173628910

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    image-20220831175337502

    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
    
    • 1
    • 2
    • 3
    • 4

    image-20220831175627027

    13、请生成均值为87.5、方差为0.55的正态分布随机向量。

    >> x=87.5+sqrt(0.55).*randn(1,100);
    >> mean(x)%求均值
    ans = 87.488
    >> var(x)%求方差
    ans = 0.5426
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20220831181139070

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    image-20220831182131488

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    image-20220831182607185

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    image-20220831184254959

    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是一个准周期的信号,求每个周期内的信号最大值及所在横轴位置。

    img

    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
    %}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    输出结果:

    image-20220901075609329

    image-20220901075508105

  • 相关阅读:
    第81天-红蓝对抗-AWD 监控&不死马&垃圾包&资源
    代码随想录训练营Day53| 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 动态规划
    使用 Sealos 一键部署高可用 MinIO,开启对象存储之旅
    【算法挨揍日记】day30——300. 最长递增子序列、376. 摆动序列
    k8s 中 Pod 的控制器
    [Java]细节与使用经验
    已解决Python爬虫报错<Response [403]>
    如何使用Docker部署Apache+Superset数据平台并远程访问?
    性能测试-Jmeter的三个重要组件(重点)
    设计实例13-跨时钟域
  • 原文地址:https://blog.csdn.net/W_chuanqi/article/details/126852672