zoukankan      html  css  js  c++  java
  • MATLAB数组相关

    0 前言

      学习了很多程序语言,在各种语言之间跳来跳去,有时候总是弄混。

      在网上找相关内容的时候,发现支零破碎,搞一段代码需要东找找西凑凑才能齐全,网上系统成掌的资料找起来还是有点吃力。

      “山不过来我过去”,将数组相关的内容再整理一遍,之后根据所用一一补全,作为系统学习、后期查看的资料。

    1.引用来源

      MathWorks:https://ww2.mathworks.cn/help/matlab/learn_matlab/matrices-and-arrays.html

    2.正文

      矩阵是按行和列排列的数据元素的二维矩阵数组,数组则是单行或者单列数据,元素可以是数字、逻辑值、日期和时间、字符串或其他数据类型等。

    2.1  数组的创建

    (1)已知数组内元素的创建

      每行的元素用逗号(,)或者空格分隔;包含多行数据则使用分号分隔各行;

    a=[1,2,3; 3 4 5; 5 6 7];

       元素可以用函数、特定表示符建立

    B=[pi,2*pi,exp(1),3,2^3]
    

     (2)未知数组内元素的创建

       MATLAB不用事先定义数组的大小,可以自己动态增加,

    a=[]
    

      对指定行比如第m行赋值:a(m,:)=[2 4 6],例如:

    a(2,:)=[2 4 6]
    

    (3)特定类型的数组或矩阵

      ones 生成元素全部为1 的矩阵,括号内元素值行、列的个数

    o=ones(3,3)
    

      zeros生成元素全部为0 的矩阵,括号内元素值行、列的个数

     z=zeros(3,3)
    

      rand 生成元素为随机数的矩阵,括号内元素值行、列的个数

    r=rand(3,3)
    

      这类数组或矩阵还有如下,其调用格式同上,不再赘述

      eye函数:产生对角线为1的矩阵。当矩阵为方阵时,得到一个单位矩阵。

      randn函数:产生均值为0,方差为1的标准正态分布的随机矩阵。

    (4)冒号的使用

      冒号的使用:创建连续且按一定增量(默认为1)均匀分布的矩阵

    如:

    A = 0:2:10
    

      还可以按非整数值递增或递减,递减则在增量的位置加负号(-)。

      如果增量值不能均分指定的范围,MATLAB 会在超出范围之前在可以达到的最后一个值处自动结束序列。

    A = 2.1:-0.2:1
    

    (5)定数创建

      定数线性采样法

    E=linspace(10,20,6)
    

      定数对数采样法

    A=logspace(1,5,3)
    

    2.2 数组运算

    (1)常用运算符直接进行运算

      相加、相减,需要矩阵的维度一致。

    A=[2 4 6 8;10 12 14 16;18 20 22 24;26 28 30 32];
    B=A+A
    C=B-A

    (2)需要带符号的运算

      转置

    A=[2 4 6 8;10 12 14 16;18 20 22 24;26 28 30 32];
    A'
    

     

      相乘:可以乘一个常数,也可以乘一个矩阵(矩阵需要注意维度);如果将矩阵中元素进行元素级相乘而不是矩阵乘法,可以在前面加(.)

      相除:两矩阵相除需要加(.),例如:A./A,

      求逆,必须是方阵,也必须是可逆矩阵才可以计算,否则会提示“警告: 矩阵接近奇异值,或者缩放错误。结果可能不准确。RCOND =  3.265362e-19。 

    inv(A)

    2.3 其他操作

    (1)串联矩阵

      串联是连接数组以便形成更大数组的过程。实际上,第一个数组是通过将其各个元素串联起来而构成的。成对的方括号 [] 即为串联运算符。

      例如(a和r为前文生成的数组或矩阵),逗号分隔生成并排的,分号分隔生成多行的

    A=[a,r]
    

     A=[a;r]
    

    (2)复数

      复数包含实部和虚部,虚数单位是 -1 的平方根,使用 i 或 j表示复数的虚部。

    c = [3+4i, 4+3j; -i, 10j]
    

    2.4 相关函数

    (1)size

      size函数用于给出矩阵的行、列数

    sz = size(A)

    (2)diag

      diag函数将输入元素放在矩阵的对角线上

    A = [12 62 93 -8];
    B = diag(A)
    

    3.数组的索引与使用

    3.1 数组的索引

      按元素位置索引

    e = B(1,2)
    

    3.2 for循环的结合使用

      用for循环存数据进入数组中,首先创建一个空数组xx,然后用for循环,如下:

    clc,clear
    xx=[];
    for i=1:10
        a=i*2;
        xx(i)=a;
    end
    disp(xx)
    

  • 相关阅读:
    AngularJS之开发组件的一些思路
    [译]React Context
    前端好玩技术中转站
    《JavaScript高级程序设计》笔记整理
    React-Router学习整理
    AngularJS中的模板安全与作用域绑定
    React问题总结与归纳
    AngularJS中的按需加载ocLazyLoad
    AngularJS+Node的RESTful之基本实现
    AngularJS中的指令
  • 原文地址:https://www.cnblogs.com/Sonny-xby/p/13024486.html
Copyright © 2011-2022 走看看