find matlab返回索引_Matlab系列之数组的基本操作

本文介绍了Matlab中数组的基本操作,包括一维和二维数组的寻址,重点讲解了find函数如何返回满足特定条件的元素索引,并探讨了sort函数的用法,支持对数组进行升序或降序排序。同时,文章通过实例展示了查找和排序的功能。
摘要由CSDN通过智能技术生成

b3a3917e2b5b0d835ff9bbdf21755f6f.gif

本篇记录的是基本的数组操作,将包括数组元素的寻址、查找和排序,本来是打算本矩阵的基本操作也介绍下,不过时间比较感觉不太够,就留到下一篇再进行记录了,先把上一篇和本篇的内容好好吸收吧,内容说多不多,但是含金量我感觉是够的。

~Show Time~

29c2f8c7188fff7b1dcdc775985f753b.gif

b0734e5c4def72ef8d1a5b3bcef11d30.gif

关于寻址,知多少?

都知道在数组中包含多个元素,因此对数组的单个元素或多个元素进行访问操作(就是我们想要拿某个特定位置或者特定的值来使用),需要对数组进行寻址操作,MATLAB中,数组寻址就是通过对数组的下表访问实现,不知道你们对之前记录的篇章中出现的“end”这个参数是否还有印象,代表数组的末尾。 我们更多的还是要记住,MATLAB在内存在以列的方向保持二维数组。对于一个m行n列的数组,分别使用i和j代表元素行列的索引,则一个二维数组的寻址可表示为A(i,j);代表A矩阵第中i行j列的这个特定元素,如果括号里只有一个数,这种就叫做单下标寻址,如A(k);代表的就是按列进行逐一计数,直到数值为k的那个元素,和(j-1)*m+i等价,等下可以用两个函数来进行转化,直接演示一下寻址的操作,你们就懂上面讲的意思了,关于代码就不做多讲述了,如果这种简单的代码还看不懂的话,就把文章多看看吧:

1、一维数组

93e17a1ba86cfecdbf3eb240468f553f.png

2、二维数组寻址

de917785506f95c8dfbdcf9c3272e211.png

8a7d2ccd39c3028e5c9ab0bf2b013089.gif

b0734e5c4def72ef8d1a5b3bcef11d30.gif

查找、排序那些事

看到查找二字,是不是就会想到“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;

·假定有矩阵Asort(A,1)A的列元素进行排序。

c36eee09add9cf7c673da46280593c3a.png

·sort(A,2)对A的行元素进行排序。

adc64b8555af7ef6c64b6d7fe0d2690b.png

direction代表排序的方向,即升序和降序,其取值为:ascend和descend,默认是升序的;

I用于存储排序后的下标数组;

Value的作用就是将缺失值放到指定位置,缺失值就是NaN,NaT之类的;

可以是三种取值:'auto'(默认),'first','last'

·'auto'-缺失的元素放在最后(对于升序排序)或放在最前面(对于降序排序)。

·'first'-缺失的元素放在最前面。

·'last'-缺失的元素放在最后。

8a7d2ccd39c3028e5c9ab0bf2b013089.gif

对查找和排序做演示:

53ec3383e2315ee4df9cdcd41415a5ee.png

86c3080e9992cbb342fd9d3ff27ca96a.png

b1d5c4509bb567b83e9c03c291ca8317.png

cfa78586b826077f578ec6da5ad30d60.gif

阅读本文共使用 1daefe667c0c6deca6ee8daadf5e69a5.gif a612e6315c5478685a713510fd7ff7d9.gif 772ae32827088af3494610a4c537d305.gif 2f9934b1cf809162c29c0346b42dd0a8.gif

b68243fcea0571136f5a3ba6a30190dd.gif

10e06b71316ea3a2531dbad1de547153.gif

074347a2eaa2b235f22005916b01de46.png

b68243fcea0571136f5a3ba6a30190dd.gif

4c735e391e87d95d620632fc9e205bdb.gif

电子知识

一些电路设计与DIY作品

电子设计技巧与经验

FPGA

System Generator系列教程

算法介绍

通信协议分析

资料分享

Matlab系列记录

建设中~

3f7ecae37b1e5bab3b8cda4ed9f27ce0.gif

点个赞

25f33c726e5bcfffeb3ba41028d91c58.gif

再走吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值