• a.Matlab(数组)


     

    A.创建一维数组 

    行向量

    1.使用方括号

     2.使用冒号(步长精确)

    x=第一个元素:步长:最大元素不能超过的数

    步长可正可负,负时,第一个元素必须大于最大元素不能超过的数

     步长为1时可以简写

     3.函数linspace(个数精确)

     

     4.函数logspace

     5.

    x=randi([1 10],5,3);%生成随机整数矩阵,大小为5X3,范围在1-10中

     列向量

    1.使用方括号,但是要用;分割

    x=[1;2;3]
    

      

     2.使用冒号

    x=(1,3)'
    

     '代表矩阵的转置

    数组变量

    a=[0 1+6] % 有运算符
    b=[a 6 7] % 数组内有其他变量,嵌套,维数一致就可以
    

     B.创建二维数组

    1.方括号

    a2=[1 2 3;4 5 6;7 8 9]
    

     行与行分号隔开,列与列空格或者逗号隔开

    a=[1 2 3];
    b=[2 3 4];
    c1=[a;b]
    c2=[a b]
    

      

     2.函数方法

    ones() 全1矩阵  ones(2)2X2矩阵 ;ones(3,4)3X4矩阵

    zeros() 全0矩阵 同上

    reshape

    a=-4:4
    b=reshape(a,3,3)
    

      

     排列顺序,从上到下按列排列,先拍第一列,再排第二列,。。。

    要求数组的元素总数不变

    C.数组的寻访

    1.一维数组

     

     

     

    2.二维数组

     

    冒号代表所有的行,

    【2 3】代表第2列和第三列

    合起来就是第二列第三列所有的行

    a_2()

    a_2=[1 1 1 7;10 1 1 30]
    a_2(:,end) %倒数第一列
    a_2(:,end-1) %倒数第二咧
    a_2(:,end:-1:3) %倒数第一列到正数第三列
    a_2(end,:) %最后一行
    a_2(end,[2:4]) %最后一行的第二列到第四列
    a_2([4 6])=6:7 % 竖着数第四个数和第六个数
    a_2(end,[2:end-1]) %最后一行的第二列到倒数第三列
    

      

    D.算数运算

    1.除

    左除AB A的逆矩阵XB

    右除A/B AXB的逆矩阵

    t=[0:199]./100 %采样时间点 t=0:0.01:2
    x=sin(2*pi*t)+sin(4*pi*t) %生成信号
    plot(t,x)
    

    练习

    m(t)=cos(2pi fm t) s(t)=(A+m(t))cos(2pi fc t)   fm=1 fc=10 A=2 Ts=0.001,时间是0到5s,画出s(t)的图像

    fm=1;
    fc=10;
    A=2;
    t=0:0.001:5 %t=[0:4999]./1000
    mt=cos(2*pi*fm*t)
    st=(A+mt).*cos(2*pi*fc*t)
    plot(t,st)
    

     

    E.关系运算

    1、当两个标量进行比较时,直接比较两数大小。若关系成立, 结果为1,否则为0。

    2、当两个维数相等的矩阵进行比较时,其相应位置的元素按 标量关系进行比较,并给出结果,形成一个维数与原来相同 的0、1矩阵。

    3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行比较,结果形成一个与矩阵维数相等的0、1矩阵。

    一些函数:

    (1)fix(x):截尾取整  

            fix([3.4,-3.4])

            ans=

             3,-3

     (2) floor( x):不超过x的最大整数

    >> floor([3.4 , -3.4])

    ans =

    3 -4

    (3)ceil(x) : 大于x 的最小整数。如:

    >> ceil([3.4 , -3.4])

    ans =

    4 -3

    (4)round(x):四舍五入取整。如:

    >> round([3.4 , 3.6 , -3.4 , -3.6])

    ans =

    3 4 -3 -4

    (5)mod()取模,,,rem()取余

    rem(a,b)与mod(a,b)

    当a和b的正负号一样的时候,两个函数结果是相同的。

    当a和吧异号是,rem的符号结果与a相同,mod与b相同

    rem采用fix函数 朝0方向取整

    mod采用floor函数 朝负无穷方向取整

    公式是:值 = 被除数 - (商 * 除数),(商通过floor或fix函数得到)

    练习:

    建立5阶方阵A,判断其元素能否被3整除。
    A = [24, 35, 13, 22, 63;23, 39, 47, 80, 80;... 90, 41, 80, 29, 10;45, 57, 85, 62, 21; 37, 19, 31, 88, 76]

    A = [24, 35, 13, 22, 63;23, 39, 47, 80, 80; 90, 41, 80, 29, 10;45, 57, 85, 62, 21; 37, 19, 31, 88, 76] 
    p=rem(A,3)==0
    

     

    F.逻辑运算

    1、在逻辑运算中,确认非零元素为真(1),零元素为假(0)。
    2、当两个维数相等的矩阵进行比较时,其相应位置的元素按 标量关系进行比较,并给出结果,形成一个维数与原来相同 的0、1矩阵;

    3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行 比较,结果形成一个与矩阵维数相等的0、1矩阵;

    4、算术运算优先级最高,逻辑运算优先级最低。

    练习:

    1.

    x=0:pi/100:3*pi;
    y=sin(x)
    y1=(y>=0).*y
    plot(x,y1)
    

      

     2.去顶

    x=0:pi/100:3*pi;
    y=sin(x)
    y1=((y<=0.8)&(y>=0)).*y %消顶,但是大于0.8的地方是0
    y2=(y>0.8)*0.8 %大于0.8的部分逻辑运算后是1,再乘0.8 最后结果就是0.8
    y3=y1+y2 %两个加起来,因为在横坐标上不重叠
    plot(x,y3)
    axis([0 10 0 1]) %横坐标显示0到10,纵坐标显示0到1
    

     3.find函数

     https://www.cnblogs.com/anzhiwu815/p/5907033.html

     

    A=[4,15,-45,10,6;56,0,17,-45,0]
    find(A>=10&A<=20)
    A(ans)
    

    4.

    A = zeros(2,5); %这一句定义A是一个2*5的零矩阵
    A(:) = -4:5%A的元素从-4到5共10个元素按照由上到下从左到右排列过去
    L=abs(A)>3%标记矩阵A中元素的绝对值大于3的元素,其中大于是1
    X = A(L)%取出A中绝对值大于3的元素组成一个新的矩阵
    

      

    G.最大值和最小值 

     1.求向量的最大值和最小值

     

     2、求矩阵的最大值和最小值

    用两次max求矩阵最大值

    用两次sum求矩阵和

    练习

    随机生成一百个1-10的整数,找到大于五的元素,并求和

    r=randi(10,100,1)
    w=find(r>5)
    a=r(w)
    r=randi([-5,4],1,10)
    mean(r)
    

      

  • 相关阅读:
    LeetCode--Divide Two Integers
    mysql多实例安装与ssl认证
    ajax请求
    mysql5.6升级及mysql无密码登录
    mysql5.7密码设置
    BusyBox 添加 自定义命令小程序 (applet)
    分享9个常用的国外英文论文文献数据库
    arm linux 移植 gdb/gdbserver
    使用 mtd-utils 烧写Arm Linux 系统各个部分
    YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)
  • 原文地址:https://www.cnblogs.com/zhaojiayu/p/13751835.html
Copyright © 2020-2023  润新知