MATLAB编程练习题

  • Post author:
  • Post category:其他



例1、产生100到1的等差数列,数据点为20个,赋值给x。获取x的第10个单元的值,赋值给x1;获取x的前10个单元的值,赋值给x2;获取x的后5个单元的数据,赋值给x3;将x的偶数单元中的数据赋值给x4;将x的数据倒排序赋值给x5。

>> x = 100:-5:1;      %产生100到1的等差数列,数据点为20个,赋值给x
x1 = x(10);           %获取x的第10个单元的值,赋值给x1
x2 = x(1:10);        %获取x的前10个单元的值,赋值给x2
x3 = x(16:end)       %获取x的后5个单元的数据,赋值给x3
x4 = x(2:2:end)      %将x的偶数单元中的数据赋值给x4
x5 = fliplr(x);       %将x的数据倒排序赋值给x5
%运算结果
x =
   100    95    90    85    80    75    70    65    60    55    50    45    40    35    30    25    20    15    10     5

x1 =
    55

x2 =
   100    95    90    85    80    75    70    65    60    55

x3 =
   25    20    15    10     5

x4 =
    95    85    75    65    55    45    35    25    15     5

x5 =
     5    10    15    20    25    30    35    40    45    50    55    60    65    70    75    80    85    90    95   100




2.创建矩阵A和B,然后执行下列运算:

Y1=A+B

Y1=A.+B

Y2=A-B

Y2=A.-B

Y3=A

B

Y3=A.

B

Y4=A\B

Y4=A.\B

Y5=A/B

Y5=A./B

Y6=A^2

Y6=A.^2

Y7=3^B

Y7=3.^B

Y8=A^B

Y8=A.^B


A = [1 2 3; 3 4 5; 2 6 12];
B = [-1 -4 6; 7 -3 10; 5 4 1];
Y1 = A+B;
% Y1 = A.+B ;         %报错,无效运算符
Y2 = A-B;
% Y2 = A.-B ;         %报错,无效运算符
Y3 = A*B;
Y3 = A.*B;
Y4 = A\B;
Y4 = A.\B;
Y5 = A/B;
Y5 = A./B;
Y6 = A^2;
Y6 = A.^2;
Y7 = 3^B;
Y7 = 3.^B;
% Y8 = A^B;          %报错,无效运算符
Y8 = A.^B;
%运算结果
Y1 =

     0    -2     9
    10     1    15
     7    10    13

Y2 =

     2     6    -3
    -4     7    -5
    -3     2    11

Y3 =

    28     2    29
    50    -4    63
   100    22    84

Y3 =

    -1    -8    18
    21   -12    50
    10    24    12

Y4 =

   17.5000   15.5000  -11.5000
  -22.0000  -25.5000   23.0000
    8.5000   10.5000   -9.5000


Y4 =

   -1.0000   -2.0000    2.0000
    2.3333   -0.7500    2.0000
    2.5000    0.6667    0.0833
Y5 =

    1.3333   -0.6357    1.3566
    2.0000   -0.9302    2.3023
    5.3333   -2.4961    4.9612

Y5 =

   -1.0000   -0.5000    0.5000
    0.4286   -1.3333    0.5000
    0.4000    1.5000   12.0000

Y6 =

    13    28    49
    25    52    89
    44   100   180

Y6 =

     1     4     9
     9    16    25
     4    36   144

Y7 =

   1.0e+03 *

    0.1408    0.0190    0.1861
    0.9539    0.1288    1.2615
    0.8131    0.1098    1.0754

Y7 =

   1.0e+04 *

    0.0000    0.0000    0.0729
    0.2187    0.0000    5.9049
    0.0243    0.0081    0.0003

Y8 =

   1.0e+06 *

    0.0000    0.0000    0.0007
    0.0022    0.0000    9.7656
    0.0000    0.0013    0.0000


例3、生成相量A,其元素为区间[1, 999]内的整数,然后找出A中能被13整除且大于500的数。

A = 1:999;
n = 1;
for i=1:999
    if A(i)>500               %先找到大于500的数
        if rem(A(i),13)==0    % r=rem(a,b) 返回a除以b后的余数,其中a是被除数,b是除数。此函数通常称为求余运算,表达式为r=a-b.*fix(a./b)。rem函数遵从rem(a,0)是NaN的约定。
           b(n) = A(i)       %将找到的数存储在数组b中
           n = n+1;
        end 
    end


4.求线性方程组的系数矩阵的行列式、迹、秩、逆,并求解线性方程组。


在这里插入图片描述

A=[1 -1 1;2 1 1;1 -1 -2];
b = [1;2;-4];      %
c1 = det(A);        %系数矩阵的行列式
c2 = trace(A);      %系数矩阵的行列式的迹
c3 = rank(A);       %系数矩阵的行列式的秩
c4 = inv(A);        %系数矩阵的行列式的逆
c5 = c4*b;         %解向量
c1 =

    -9

c2 =

     0

c3 =

     3

c4 =

    0.1111    0.3333    0.2222
   -0.5556    0.3333   -0.1111
    0.3333         0   -0.3333

c5 =

   -0.1111
    0.5556
    1.6667


例5、用红色点画线方式绘制函数y = sin(x)+ cos(x)在[-π,π] 上的曲线,并以“函数”为标题。

x = -pi:0.1:pi;
y = sin(x)+cos(x);
plot(x,y,'r-.');
grid on;
box off;
xlabel('X轴');
ylabel('y轴');
title('y = sin(x)+cos(x)');

在这里插入图片描述


例6、用多子图方式分别绘制曲线y1= sin(x+1), y2=e^(0.5x),y3= y1+y2在[0,5π]上的曲线。

x = 0:0.1:5*pi;
y1 = sin(x+1);
y2 = exp(0.5*x);
y3 = y1+y2;
subplot(3,1,1);       %子图1
plot(y1);
title('y1 = sin(x+1)')
subplot(3,1,2);      %子图2
plot(y2,'r-.');
title('y2 = exp(0.5*x)')
subplot(3,1,3);     %子图3
plot(y3,'b*');
title('y3 = y1+y2')

在这里插入图片描述


例7、采用多图叠绘的方式分别绘制正弦曲线y1=sin(x+1)、 余弦曲线y2= cos(x)+ 1在区间[0,2π] 上的曲线,要求两条曲线,一条用实线,一条用虚线,一条用红色,一条用绿色,线宽均设置为2,并为两条曲线添加图例“正弦曲线”和“余弦曲线”。

x = 0:0.01:2*pi;
y1 = sin(x+1);
y2 = cos(x)+1;
plot(x,y1,'r',x,y2,'g:',LineWidth=2);
legend('正弦函数','余弦函数');        %添加图例

在这里插入图片描述


例8、绘制三维曲线x= 3tsint ,y=3tcost,Z=t,t∈[1,10]。

t = 1:0.01:10;
x = 3.*t.*sin(t);
y = 3.*t.*cos(t);
z = t;
plot3(x,y,z,'r');
title('三维曲线');
grid on;

在这里插入图片描述

例9、在 XY 平面内选择区域[0,6]和[0,6]绘制二维高斯函数的三维网格曲面。

在这里插入图片描述

t = 0:0.1:6;
[x,y] = meshgrid(t);     %网格数据的生成
z = exp(-((x-3).^2+(y-2).^2));
subplot(1,2,1)
mesh(x,y,z);           %三维网格图
title('三维网格图');
subplot(1,2,2)
surf(x,y,z);           %三维曲面图
title('三维曲面图');

在这里插入图片描述


例10、在 XY 平面内选择区域[-6,6]和[-6,6]绘制函数的三维曲面。


在这里插入图片描述

t = -6:0.1:6;
[x,y] = meshgrid(t);     %网格数据的生成
z = sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);
subplot(1,2,1)
mesh(x,y,z);           %三维网格图
title('三维网格图');
subplot(1,2,2)
surf(x,y,z);           %三维曲面图
title('三维曲面图');

在这里插入图片描述


例11、利用 while 循环求出 100 到 200 之间第二个能被 31 整除的数。

x = 100:200;
i = 1;
n = 0;
while  n<2
    if rem(x(i),31)==0
        n = n+1;
       y(n) = x(i);
    end
    i=i+1;
end
disp(y(2))
%显示结果
        155


例12、用 for 循环语句计算求和的程序。


在这里插入图片描述

sum = 0;
for i=0:1000000
    sum = sum+0.2^i;
end
disp(sum)
%结果
sum = 
     1.25



版权声明:本文为onlyfanlala原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。