Matlab系列之数组的基本操作
本篇记录的是基本的数组操作,将包括数组元素的寻址、查找和排序,本来是打算本矩阵的基本操作也介绍下,不过时间比较感觉不太够,就留到下一篇再进行记录了,先把上一篇和本篇的内容好好吸收吧,内容说多不多,但是含金量我感觉是够的~
关于寻址,知多少?
都知道在数组中包含多个元素,因此对数组的单个元素或多个元素进行访问操作(就是我们想要拿某个特定位置或者特定的值来使用),需要对数组进行寻址操作,MATLAB中,数组寻址就是通过对数组的下表访问实现,不知道你们对之前记录的篇章中出现的“end”这个参数是否还有印象,代表数组的末尾。
我们更多的还是要记住,MATLAB在内存在以列的方向保持二维数组。对于一个m行n列的数组,分别使用i和j代表元素行列的索引,则一个二维数组的寻址可表示为A(i,j);代表A矩阵第中i行j列的这个特定元素,如果括号里只有一个数,这种就叫做单下标寻址,如A(k);代表的就是按列进行逐一计数,直到数值为k的那个元素,和(j-1)*m+i等价,等下可以用两个函数来进行转化,直接演示一下寻址的操作,你们就懂上面讲的意思了,关于代码就不做多讲述了,如果这种简单的代码还看不懂的话,就把文章多看看吧:
1、一维数组
2、二维数组寻址
查找、排序那些事
看到查找二字,是不是就会想到“Ctrl+F“,如果没有,当我没说。。。
MATLAB里提供了一个数组查找函数,可以查找数组中非零数组元素,并返回其在整个数组中的索引值,调用格式:
k=find(X)
k=find(X,n)
k=find(X,n,direction)
[row,col]=find(___)
[row,col,v]=find(___)
k表示非零元素的下标值,row和col分别表示行下标向量和列下标向量,和上一篇说的索引i和j是一个东西,只是为了方便理解,这边换row和col来表示,v表示非零元素向量。
在实际应用中,通常使用多逻辑关系组合产生逻辑数字,判断数组元素是否满足某种比较关系,然后通过find函数返回符合比较关系的元素索引,从而实现对数组元素的查找。
再说一下排序,其实这个之前也展示过了,惊不惊喜,意不意外?
如果没印象,那接着看,排序函数:sort;可对任意给定的数组进行排序,语法:
B=sort(A)
B=sort(A,dim)
B=sort(___,direction)
B=sort(___,Name,Value)
[B,I]=sort(___)
B为返回的排序后的数组,A为输入的待排序的数组,A为多数组时,用dim指定需要排序的维数,默认值是1;
·假定有矩阵A
。sort(A,1)
对A
的列元素进行排序。
·sort(A,2)对A的行元素进行排序。
direction代表排序的方向,即升序和降序,其取值为:ascend和descend,默认是升序的;
I用于存储排序后的下标数组;
Value的作用就是将缺失值放到指定位置,缺失值就是NaN,NaT之类的;
可以是三种取值:'auto'(默认),'first','last'
·'auto'-缺失的元素放在最后(对于升序排序)或放在最前面(对于降序排序)。
·'first'-缺失的元素放在最前面。
·'last'-缺失的元素放在最后。
对查找和排序做演示:
- JSONP挖掘与高级利用
- CTF---隐写术入门第二题 小苹果
- 隐含层权重参数的初始化方式的对比实验
- BZOJ4868: [Shoi2017]期末考试
- namespace用法
- 全站缓存时代
- 洛谷P1962 斐波那契数列(矩阵快速幂)
- 负载均衡https转发会让服务器误判
- 凯撒加密之一个神奇的Python的API
- 10分钟搞懂TensorBoard用法
- 【最新TensorFlow1.4.0教程02】利用Eager Execution 自定义操作和梯度 (可在 GPU 运行)
- 清北集训Day1T3 LYK loves jumping(期望DP)
- C#进阶系列——WebApi 接口参数不再困惑:传参详解上
- MySQL之多表查询
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- C 语言指针详解
- 04 CentOS6.5系统语言切换为中文
- 【SpringBoot DB 系列】Redis 高级特性之 Bitmap 使用姿势及应用场景介绍
- 踩坑:一次年轻代GC长暂停问题的解决与思考
- 监听MySQL的binlog日志工具分析:Canal
- 小解c# foreach原理
- 3分钟短文:任命管理员,给Laravel普通用户提权
- this到底是什么?
- ES5面向对象基础
- 面试官问我啥是OAuth 2.0,两个案例讲懂他~
- 年轻代频繁ParNew GC,导致http服务rt飙高
- JWT 使用 nimbus-jose-jwt 进行解码
- linux centos7 编译安装python3 --shell脚本
- Qt音视频开发36-USB摄像头解码qcamera方案
- JS中属性描述符