• 【数学建模】matlab向量(数组)


    《精通MATLAB

    向量(数组)

    创建一维行向量,只需要把所有用空格成逗号分隔的元素用方括号括起来即可;
    而创建一维列向量,则需要在方括号括起来的元素之间用分号分隔。不过,更常用的办法是用转置运算符',把行向量转置为列向量。

    对于3行2列的数组A,A(3,1)表示数组A的第3行第1列的元素,A(1,2)表示数组A的第1行第2列的元素。

    在这里插入图片描述

    x=[1,2,3,4,5] %以行向量(数组)方式给x赋值
    t=[1;2;3;4;5] %以列向量(数组)方式给t赋值
    y=(x(3)+x(5))/2*x(4)   %x(3)调用x中的第3个元素
    Z=sqrt(x)    %每个元素开方
    u=x*t   %向量的内积(u为向量x的模的平方)
    x(6)=16   %加入第6个元素
    x(2)=[]    %删除第2个元素
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    向量运算函数
    在这里插入图片描述

    使用冒号创建等差数列

    Var=start_val:step:stop_val
    
    • 1

    表示创建一个一维行向量Var,它的第一个元素是start_val,然后依次递增(step为正)或递减(step为负)step,直到向量中的最后一个元素与stop_val差的绝对值小于等于step的绝对值为止。当不指定step时,默认step等于1。

    2.通过linspacei函数创建
    和冒号功能类似的是MATLAB:提供的linspacel函数:

    Var=linspace (start_val,stop_val,n)
    
    • 1

    表示创建一个一维行向量Var,它的第一个元素是start_val,最后一个元素是
    stop_val,形成总共是n个元素的等差数列。不指定n时,默认n等于100。要注意,这和冒号是不同的,冒号创建等差的一维数组时,stop_v可能取不到。

    3.通过logspace函数创建
    类似于linspacel函数,MATLAB中还有创建等比一维数组的logspacel函数:

    Var=logspace(start_val,stop_val,n)
    
    • 1

    表示产生从10^start valz到10^stop val包含n个元素的等比一维数组Var。不指定n时,默认n等于50。

    >>A=1ogspace(0,1og10(32),6);
    A=1.00002.00004.00008.000016.000032.0000
    
    • 1
    • 2

    在这里插入图片描述
    (1)d=size(A)
    将数组A的行列尺寸以一个行向量的形式返回给变量d,即d=[m n];
    (2)[a,b]=size(A)
    将数组A在行、列的方向的尺寸返回给a,b,即a=m,b=n。
    length函数常用于返回一维数组的长度。
    ①当A是一维数组时,length(A)返回此一维数组的元素个数;
    ②当A是普通二维数组时,length(A)返回size(A)得到的两个数中较大的那个。

    MATLAB中还有返回数组元素总个数的函数numel,对于m行n列的数组A,
    numel(A)实际上返回m*n。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    随机数组
    在各种分析领域,随机数组都是很有用途的。MATLAB中可以通过内部函数产生服从多种随机分布的随机数组,常用的有均匀分布和正态分布的随机数组。
    (1)rand(m,n)可以产生m行n列的随机数组,其元素服从0到1的均匀分布。
    (2)rand(size(A))产生和数组A具有相同大小的、元素服从0到1均匀分布的随机数组。
    (3)rand(m)则产生m行m列的元素服从0到1均匀分布的随机数组。randn函数用于产生元素服从标准正态分布的随机数组,其用法和rand类似,此处不再赘述。

    魔方数组
    魔方数组也是一种比较常用的特殊数组,这种数组一定是正方形的(即行的方向的元素个数和列的方向的相等),而且每一行、每一列的元素之和都相等。MATLAB可以通过magic(n)创建n行n列的魔方数组。

    在这里插入图片描述
    repmat函数会经常用到
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    删除数组元素很简单,只需要对该位置元素赋值为空方括号([])即可,一般配合冒号,将数组的某些行、列元素删除。但要注意,进行删除时,索引结果必须是完整的行或完整的列,而不能是数组内部的块或单元格。
    在这里插入图片描述

    数组转置

    在这里插入图片描述
    在这里插入图片描述

    数组翻转

    在这里插入图片描述

    数组运算
    最基本的就是数组和数组的 加(+)、减(-)、乘(*)、乘方(^) 等运算。要注意,数组的加、减,要求参与运算的两个数组具有相同的尺寸,而数组的乘法要求第一个数组的列数等于第二个数组的行数,乘方运算在指数n为自然数时相当于n次自乘,这要求数组具有相同的行数和列数。

    数组除法实际上是乘法的逆运算,相当于参与运算的一个数组和另一个数组的逆(或伪逆)数组相乘。
    MATLAB中数组除法有左除(/)和右除()两种。

    (1)A/B相当于A*inv(B)A*pinv(B)(2)A\B相当于inv(A)*Bpinv(A)*B. 
    
    • 1
    • 2

    其中,inv是数组求逆函数,仅适用于行列数相同的方形数组(在线性代数中,称为方阵);piv是求数组广义逆的函数。

    点运算
    A.*B,就可以实现两个同样尺寸的数组A和数组B对应元素的乘法,同样的,A./B或A.\B实现元素对元素的除法,A.^n实现对逐个元素的乘方。
    在这里插入图片描述

    数组查找
    MATLAB中数组查找只有一个函数find,它能够查找数组中的非零元素并返回其下标索引。find配合各种关系运算和逻辑运算,能够实现很多查找功能。
    find函数有两种语法形式:

    (1)a=find(A)返回数组A中非零元素的单下标索引。
    (2)[a,b]=find(A)返回数组A中非零元素的双下标索引方式。
    
    • 1
    • 2

    在这里插入图片描述

    数组排序
    在这里插入图片描述

  • 相关阅读:
    数字滚动动效(纯HTML5版和Vue版本)
    高效管理企业固定资产的办法
    spring-security-源码解析+自定义拓展
    Java基础学习总结(195)—— 关于 Java 8 中的日期处理总结
    使用vuex完成小黑记事本案例
    presto框架【博学谷学习记录】
    塔望食研院|骆驼奶市场规模庞大,百亿体量,品牌升级!
    Idea远程debug操作步骤(连接服务器)
    Python构建学生信息管理系统:需求分析与规划
    Python 基于OpenCV+face_recognition实现人脸捕捉与人脸识别
  • 原文地址:https://blog.csdn.net/qq_55675216/article/details/126131001