Matlab中的向量和数组(超详细)


文章目录

  • Matlab中的向量和数组(超详细)
    • Matlab中的向量
      • 介绍
      • 创建向量
      • 向量的大小
      • 索引向量
        • 数值索引
        • 逻辑索引
      • 缩短向量
      • 向量运算
        • 算术运算
        • 逻辑运算
        • sum()、min()、max()、round()、ceil()、floor()、fix()
        • 切片
    • Maltab中的数组
      • 数组的属性
      • 创建数组
      • 访问数组元素
      • 数组运算
        • 数组的算术运算
        • 数组的逻辑运算
        • sum()、max()、min()、round()、ceil()、floor()、fix()
        • 连接数组
        • 切片数组
        • 重塑数组

Matlab中的向量

介绍

matlab中的向量是只有一行元素的数组,向量中的单个项通常称为元素。Matlab中的向量索引值从1开始,而不是从0开始。

创建向量

  • 直接输入值
    例如:
    这里既可以用逗号来分割,也可以用空格
  • 使用冒号输入某一数字范围的值,例如,C=1:4:20,其中第一个数字是起始值,第二个数字是步长,第三个数字是终止值。如果步长是1的话,可以不写步长

例如:

  • 使用函数linspace(⋯\cdots⋯):用于创建两个限定值之间固定数量的值。

例如:
其中第一个数字是起始值,第二个数字是终止值,第三个数字是这个区间向量的个数

  • 函数zeros(1,n):创建全零的向量

例如:
其中第一个数字是数组的行数,第二个数字是数组的列数。

  • 函数ones(1,n):创建全1的向量

例如:
其中第一个数字是数组的行数,第二个数字是数组的列数。

  • rand(1,n):创建0~1之间的随机数的向量

例如:

向量的大小

Matlab提供两个函数来确定一般数组和特殊向量的大小:size()和length().

  • size():返回向量中的行的数量和列的数量。由于向量是一维的,所以第一个每次输出都是一
  • length():返回数组行列大小的最大值,对于向量,表示其长度

例如:

索引向量

通过在括号内输入零个(全部输出)或多个元素的索引值,可以单个或分组访问向量中的元素。可以通过以下两种方式中的任意一种访问向量中的元素: 使用数值向量和逻辑向量。

数值索引

通过在括号内输入零个或多个元素的索引值,可以单个或分组访问向量中的元素。
例子:

另外,索引环境中的关键字end表示向量中的最后一个元素的索引

**注意:**在Matlab中在赋值操作中输入的索引超过当前的边界,Matlab会自动扩列,空位用零补齐,比如,我们在这个例子中输入A(10)看看会有什么结果。

逻辑索引

我们来看一个例子:
创建了一个condition逻辑数组,通过数组来索引这个向量

缩短向量

有些时候,我们需要删除向量中的元素。可以用索引将需要删除的部分赋值为[ ]

但是,缩短向量不是做正确的方法,因为可能会导致一些逻辑问题,在可行的情况下,应该使用索引来复制需要保存的元素。

向量运算

算术运算

  • 向量中的加减法运算

可以看见是对向量中每个元素进行加法运算,减法也一样

  • 向量中的乘法、除法.

例子

  • 向量中的指数


.∗.*.∗ 和 ∗*∗的区别:
对于矩阵和数字之间的运算,.∗.*.∗ 和 ∗*∗没什么区别,但是对于矩阵和矩阵之间,.∗.*.∗ 表示矩阵对应元素相乘,而∗*∗表示矩阵乘法。

逻辑运算

向量的逻辑运算会产生的逻辑结果向量。
例如:

逻辑与(&)和逻辑或(|):

例子:

find():可以用find()函数查找值为true的元素在一个逻辑向量中的索引值
例如:

sum()、min()、max()、round()、ceil()、floor()、fix()

sum():向量中元素的总和;

min()、max():返回向量中元素最小最大值;

round()、ceil()、floor()、fix():常规取整、向上取整、向下取整、向零取整

切片

切片操作能将一个向量中的指定元素复制到另一个向量的不同位置。
看一个简单的例子:

Maltab中的数组

向量是聚集相似数据集的最简单的方法。而数组是向量的拓展,使其包括多个维度的数组,其中二维数组是每行具有相同的列,并且每列具有相同的行。

数组的属性

  • size():返回各个维度的大小

  • length():返回数组的最大维度

创建数组

  • 直接输入值
    和向量一样,在数组中直接输入值时,可以使用分号(;)或以新的一行来表示换行

  • zeros(m,n):创建m行n列的全0的数组

  • rand(m,n):创建m行n列的0~1随机数的数组

  • randn(m,n):创建m行n列的正态分布随机数的数组

  • diag():返回对角线上的元素

访问数组元素

数组的索引是从列开始,从上往下依次为1,2,3 , ⋯\cdots⋯
例如:

数组运算

数组的算术运算

  • 数组之间的加减

例子:

  • 数组之间的乘法

数组和数字的乘法:对应元素相乘
例子:

数组与数组的乘法(∗*∗):一定要符合矩阵可乘。
例子

数组与数组之间的.∗.*.∗:对应元素相乘:

例子:

数组的逻辑运算

如果两个数组具有相同的大小,或者其中一个数组是标量(及长度为1的向量),逻辑运算可以同时执行在这两个数组的各个元素上。
例如

sum()、max()、min()、round()、ceil()、floor()、fix()

  • sum():返回一个行向量,包含该数组每列的总和

  • max()和min():分别返回一个行向量,每列的最大值和每列的最小值

连接数组

看一个简单的例子

切片数组

对一个数组进行切片:A(对行索引,对列索引)

例子:

重塑数组

有些时候我们希望将某一维度的数组变形为另一种维度的需求,函数reshape(⋯\cdots⋯)能完成这种边形。

例子:

Matlab中的向量和数组(超详细)相关推荐

  1. linux跑到命令行是到了哪里,在Linux命令行中使用tcpdump「超详细」

    原标题:在Linux命令行中使用tcpdump「超详细」 灵活,强大的命令行工具有助于减轻网络问题排查的痛苦. 根据我作为系统管理员的经验,我经常发现网络连接问题难以排除故障. 对于那些情况,tcpd ...

  2. win10环境下下载安装openpose(only cpu)并在pycharm中运行代码(超详细)

    win10环境下下载安装openpose(only cpu)并在pycharm中运行代码(超详细) (一)前言 (二)准备工作 (三)友情提醒 (四)详细安装步骤 1.新建文件夹 2.下载OpenPo ...

  3. MATLAB中矩阵与数组的区别,点运算符的运用

    转自http://blog.csdn.net/peterkang202/article/details/26623219 正如matlab(矩阵实验室)这个名字一样,matlab的数据结构只有矩阵(a ...

  4. matlab中欠定方程组超定方程组_一篇文章入门大规模线性方程组求解

    前面介绍过主要的线性方程组求解库,参考附录.求解大规模线性方程组是仿真软件求解器的底层技术,求解器时间基本都消耗在方程组求解上.线性方程组的解法比较成熟,方法也有很多,而且不同的方法对应不同类型方程组 ...

  5. matlab中非0即1函数,matlab 中统计一个数组中非零元素个素的函数名称是什么?

    可以自己写一个函数用来给数组排序.或者用MATLAB自带的 Matlab 用sort函数排序 二维数组2008-09-14 22:51在Matlab中排序某个向量(一维)时,可以使用sort(A),其 ...

  6. matlab中如何用数组绘图,matlab 基础学习(1)——数组,矩阵操作和绘图基础学习...

    一维数组(创建,赋值,取值,分割取值,四则运算等操作) 创建一维数组 >> A=[] %创建空的数组 >> B=[1 2 3 4 5] %两种创建行向量,数组的方式 >& ...

  7. matlab 稀疏随机矩阵,MATLAB中的稀疏数组

    本文概述 声明普通数组后, MATLAB将为数组中的每个元素创建一个内存位置.例如, 函数a =眼睛(10)将创建100个元素, 这些元素排列为10 x 10结构.在此数组中, 其中90个元素为零! ...

  8. matlab 中矩阵和数组

    文章目录 一.联系 二.创建 一.联系 一维数组相当于向量,二维数组相当于矩阵.所以矩阵是数组的子集 数组运算是指数组对应元素之间的运算,也称点运算.矩阵的乘法.乘方和除法有特殊的数学含义,并不是数组 ...

  9. excel中如何输入数组公式详细介绍

    内容提要:文章详细介绍excel中如何输入数组公式的方法,并用动画演示多单元格数组公式是如何输入的.对Excel感兴趣的朋友可加Excel学习交流群:284029260(www.itblw.com) ...

最新文章

  1. 关于Access数据库执行Update语句后,不报错,但影响行数总是返回0的问题
  2. 某程序员哀叹:连续帮三任女朋友进360,京东等互联网大厂,进去后却都惨遭分手!...
  3. 【C/C++多线程编程之五】pthread线程深入理解
  4. Linux 从源码编译安装 OpenSSL
  5. [vue] 说说你对vue组件的设计原则的理解
  6. 个性化商品搜索相关研究梳理
  7. 导出csv文件数字会自动变科学计数法的解决方式
  8. mysql编程游标取值_mysql存储过程中使用游标的实例
  9. HDU1996 汉诺塔VI【水题】
  10. 计算机桌面组成部分教案,三年级信息技术第五课设置个性桌面教学设计
  11. 【Python精华】100个Python练手小程序
  12. java cmd 乱码_java在cmd运行时出现乱码解决方法
  13. linux forge服务器,linux下搭建我的世界spongeforge 服务器 (海绵端)
  14. 2019 iPad iPhone所有尺寸
  15. jQuery 从零开始学习 (三) 属性与css样式
  16. 获取汉字的拼音首字母
  17. Ubuntu16.04搜索不到wifi列表
  18. CentOS7-查看IP
  19. 华雨打shanghtml单页网站源码
  20. 计算机图标显示的是word,word图标不显示怎么办 设置显示word图标的方法

热门文章

  1. 校园导游系统(Java语言)
  2. 智汀云盘-网盘开发golagn:共享文件
  3. 一朝马死黄金尽,亲着如同陌路人。
  4. 特斯拉为什么要造电动卡车?
  5. pcl点云处理基本步骤
  6. Android 完整开源应用大全,完整开源项目
  7. 我写了一个脚本,实现了图片分类问题的全自动化训练
  8. 运维基础入门到精通01
  9. jQuery FlexSlider插件一些使用上的小tips
  10. linux下mnt目录的作用