• 0、常用函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    fix - 朝零四舍五入
    rem - 除后的余数
    round - 四舍五入为最近的小数或整数
    inv - 矩阵求逆
    length - 最大数组维度的长度
    sum - 按列数组元素总和
    size - 数组大小
    max - 数组的最大元素
    reshape - 按列重构数组,例如reshape(1:16,2,8)。
    randn - 正态分布的随机数
    rand - 均匀分布的随机数
    det - 求矩阵的行列式
    inv - 矩阵求逆
    eig - 求特征值和特征向量
    fliplr - 交换元素
  • 1、在通常情况下,左除x=a\b是 a*x=b的解,右除x=b/a是 x*a=b 的解,一般情况下, a\b,b/a 。a\b等效于inv(a)*b

  • 2、MATLAB表达式2*2^3^2的结果是( A )
    A.128 B.4096 C. 262144 D.256

  • 3、某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    price<200           没有折扣
    200≤price<500 3%折扣
    500≤price<1000 5%折扣
    1000≤price<2500 8%折扣
    2500≤price<5000 10%折扣
    5000≤price 14%折扣
    输入所售商品的价格,求其实际销售价格。
    price=input('请输入商品价格');
    switch fix(price/100)
    case {0,1} %价格小于200
    rate=0;
    case {2,3,4} %价格大于等于200但小于500
    rate=3/100;
    case num2cell(5:9) %价格大于等于500但小于1000
    rate=5/100;
    case num2cell(10:24) %价格大于等于1000但小于2500
    rate=8/100;
    case num2cell(25:49) %价格大于等于2500但小于5000
    rate=10/100;
    otherwise %价格大于等于5000
    rate=14/100;
    end
  • 4、串联是连接数组以便形成更大数组的过程。实际上,第一个数组是通过将其各个元素串联起来而构成的。成对的方括号 [ ] 即为串联运算符。

    1
    2
    3
    4
    5
    A = [a,a]
    A = 3×6
    1 2 3 1 2 3
    4 5 6 4 5 6
    7 8 10 7 8 10
  • 5、使用逗号将彼此相邻的数组串联起来称为水平串联。每个数组必须具有相同的行数。同样,如果各数组具有相同的列数,则可以使用分号垂直串联。

    1
    2
    3
    4
    5
    6
    7
    8
    A = [a; a]
    A = 6×3
    1 2 3
    4 5 6
    7 8 10
    1 2 3
    4 5 6
    7 8 10
  • 6、在一个元胞数组A中寻访第2行第3列元胞元素用 A(2,3) ;寻访数组第2行第3列元胞中的内容用 A{2,3} 。使用园括号进行索引,将得到一个元胞数组子集;使用花括号进行索引时,将会得到元胞数组中的数据
  • 7、MATLAB实现将全下标转换为单下标的指令为 Sub2ind 、据单下标换算出全下标的指令为 Ind2sub

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>A=[6 4 4 8];
    >>B=[1 1 1 0;1 1 1 0;1 1 1 0; 0 0 0 5];
    >>C=[A;B(:,1:3)’]
    答案:
    C=
    6 4 4 8
    1 1 1 0
    1 1 1 0
    1 1 1 0
  • 8、用MATLAB编程求下列联立方程的解 3x+4y-7z-12w=4 ;5x-7y+4z+ 2w=-3; x +8z- 5w=9 ;-6x+5y-2z+10w=-8 。求系数矩阵的秩,求出方程组的解。(5分)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    a=[3 4 -7 -12; 5 -7 4 2 ;1 0 8 -5; -6 5 -2 10]; 
    c=[4; -3; 9;-8];
    b=rank(a)
    d=a\c
    X=d(1)
    Y=d(2)
    Z=d(3)
    W=d(4)
    >> b = 4
    x=-1.4841;y= -0.6816;z= 0.5337;w=-1.2429
  • 9、在MATLAB矩阵除法中,A\B等效于( inv(A)*B ),B/A等效于( B*inv(A) )

  • 10、若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是 完数。求[1,500]之间的全部完数。(15分)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for m=1:500
    s=0;
    for k=1:m/2
    if rem(m,k)==0
    s=s+k;
    end
    end
    if m==s
    disp(m);
    end
    end
  • 11、在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及标注图例。(5分)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    clf
    x=0:pi/200:4*pi;
    y1=sin(x);
    y2=cos(x);
    zz=x(find(abs(y1-y2)<0.005))
    z=min(zz)
    plot(x,y1,'r-',x,y2,'g-.')
    hold on
    plot(zz,sin(zz),'*')
    legend('sin','cos')

  • 12、对应MATLAB提供的绘制平面曲线、离散序列、三维曲线、三维网格曲线、等高线图的函数为 (B)
    A. plot, stem, mesh, plot3, surf
    B. plot, stem, plot3, mesh, contour
    C. plot, hist, mesh, plot3, contour
    D. plot, hist, plot3, meshc, contour

  • 13、在MATLAB中,图形窗口色图的设置和改变需调用函数
    (A)color (B) colormap (C) plot (D) change

  • 14、A是一个維度m×n的矩阵.写一段程序,算出A中有多少个零元素。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     A= input ('请输入一个矩阵')
    [m,n]= size(A);
    sum=0;
    for i=1:m
    for j=1:n
    if A(i,j)==0
    sum = sum+1;
    ends
    end
    end
  • 15、将一个屏幕分4幅,选择合适的步长在右上幅与左下幅绘制出下列函数的图形。① ,x (曲线图);②f(x,y)= (-2<=x<=2,-4<=x<=4) (曲面图)。

    1
    2
    3
    4
    5
    6
    7
    subplot(2,2,2);
    ezplot('(cos(x))^(1/2)',[-pi/2 pi/2]);
    ylabel('y');
    subplot(2,2,3);
    x=-2:0.5:2;
    y=-4:1:4;
    ezsurfc('x^2/2^2+y^2/4^2')

  • 16、在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及建立图例。(6分)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    clf
    x=0:pi/200:2*pi;
    y1=sin(x);
    y2=cos(x);
    zz=x(find(abs(y1-y2)<0.005))
    z=min(zz)
    plot(x,y1,'r-',x,y2,'g-.')
    hold on
    plot(zz,sin(zz),'*')
    legend('sin','cos')