MATLAB知识点:all、any和find函数

这篇具有很好参考价值的文章主要介绍了MATLAB知识点:all、any和find函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​

MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili


节选自第3章 3.4.4 逻辑运算

3.4.4.4     all、any和find函数

下面我们介绍三个非常重要的函数,它们的作用请看下表:

matlab any函数,MATLAB知识点详解,数学建模,matlab,开发语言

其中,all函数和any函数的用法类似,以all函数为例,它的用法如下:

(1)如果A是一个向量,那么当所有元素均为非零值时,all(A)返回逻辑值1 (true),当存在一个或多个元素为零时,返回逻辑值0 (false)。

(2)如果A是一个矩阵,那么all(A,dim) 沿着dim维来判断元素是否全为非零值,dim等于1时沿着行方向来判断每一列是否全为非零值,并将结果返回为一个全为逻辑值的行向量;dim等于2时表示沿着列方向判断每一行是否全为非零值,并将结果返回为一个全为逻辑值的列向量。特别地,当dim等于1时,可以直接简写成all(A)。

(事实上,all函数和any函数的用法和我们之前讲解的sum函数非常像)

matlab any函数,MATLAB知识点详解,数学建模,matlab,开发语言

可以看出,all函数相当于对向量或者矩阵的元素进行‘逻辑与&’运算,只有全为非零值时才返回逻辑值1。而any函数则相当于对元素进行‘逻辑或|’运算,存在至少一个非零值时就会返回逻辑值1。

我们来看any函数的例子:

matlab any函数,MATLAB知识点详解,数学建模,matlab,开发语言

事实上,all函数和any函数很少直接运用在数值矩阵上,它常常配合逻辑矩阵来实现特定的功能。我们来看下面的练习题:

(1)请随机生成一个100行3列的矩阵,用来记录学生的考试成绩:矩阵每一行代表一名同学,每一列代表一门科目的成绩,矩阵中的每个元素都是区间[50,100]内的随机整数。

score = randi([50,100],100,3)

(2)三门科目的成绩都不低于85分的同学可以获得奖学金评选的资格,请指出哪些同学可以获得资格。要求返回一个包含100个元素的逻辑向量,元素为逻辑值1的位置对应的同学有评选资格。

all(score >= 85,2)

(3)请指出哪些同学挂科了,至少有一门科目没过60分就算挂科。要求返回一个包含100个元素的逻辑向量,元素为逻辑值1的位置对应的同学挂科了。

any(score < 60,2)

(4)这三门科目中是否存在科目没有人挂科(所有同学的这一门科目的成绩都高于60分)。要求返回一个包含3个元素的逻辑向量,元素为逻辑1的位置对应的科目表示没有人挂科。

all(score >= 60)

大家应该注意到了,上面问题的答案有一点冗余。例如第二问我们关心的是哪些同学可以获得评选资格,但是答案返回的结果是一个长度为100的逻辑向量,向量中也包含了没有获得评选资格的同学,他们用逻辑值0表示。那么有没有一种方法能够找到这个向量中所有非零元素呢?find函数可以帮助我们实现!下面是MATLAB官方文档对于find函数的介绍:

matlab any函数,MATLAB知识点详解,数学建模,matlab,开发语言

默认情况下,find函数会返回所有非零元素的索引,如果只给find函数一个返回值,那么会返回所有非零元素的线性索引;如果给两个返回值,那么会返回非零元素对应的行和列下标;如果给三个返回值,那么还会返回非零元素构成的向量。另外,大家也可以指定返回前n个非零元素的索引,只需要给定第二个输入参数n,此时会返回前n个非零元素的索引,如果要返回后n个非零元素的索引,那么需要使用find(X,n,'last')。

matlab any函数,MATLAB知识点详解,数学建模,matlab,开发语言

回到上面练习题的第二个问题,我们可以使用下面的命令对代码进行改进,这样就可以返回获得资格的同学的索引:

  1. tmp = all(score >= 85,2);

  2. ind = find(tmp)

练习题(接着上题来):

(5)找出恰好挂了两门科目的同学的编号。

  1. tmp = sum(score < 60,2); % 每位同学挂科的数目

  2. find(tmp == 2)

(6)找到总分超过260分的同学的编号。

  1. total_score = sum(score,2); % 计算每位同学的总分

  2. find(total_score > 260)文章来源地址https://www.toymoban.com/news/detail-854759.html

到了这里,关于MATLAB知识点:all、any和find函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB知识点:向量元素的引用

    讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.2.2节 对向量元素的引用(即提取向量指定位置的值)有两种情形,分别是提取向量中的单个元素

    2024年02月19日
    浏览(47)
  • MATLAB知识点:矩阵的创建方法

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章   3.3.1 矩阵的创建方法 在MATLAB中,矩阵的创建方法主要有三种,分别是:直接输入法、函数创

    2024年02月21日
    浏览(52)
  • MATLAB知识点:矩阵的拼接和重复

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.3.4 矩阵的拼接和重复 有时候我们需要对多个矩阵进行拼接,变成一个大的矩阵。根据矩阵拼

    2024年02月22日
    浏览(41)
  • MATLAB知识点:median :计算中位数

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.4.1节 中位数又称中值,我们将数据按从小到大的顺序排列,在排列后的数据中居于中间位置的

    2024年04月11日
    浏览(44)
  • MATLAB知识点: 矩阵元素的修改和删除

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.3.3 矩阵元素的修改和删除 我们可以直接利用等号赋值的方法对矩阵中引用位置的元素进行修

    2024年04月12日
    浏览(46)
  • MATLAB知识点:if条件判断语句的嵌套

     ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自​第4章:MATLAB程序流程控制 我们通过一个经典例题来理解if的嵌套,所谓if的嵌套,是指在if、els

    2024年04月09日
    浏览(45)
  • MATLAB知识点:for循环的七道经典例题

     ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自​第4章:MATLAB程序流程控制 (1)不使用sum函数,计算行向量x中所有元素的和。   在这个示例中,

    2024年04月13日
    浏览(44)
  • 【Matlab数理统计知识点合集】新手入门第十三天

    掌握随机数的产生 了解概率密度函数等函数的使用 掌握统计图表的绘制方法 随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模

    2023年04月11日
    浏览(46)
  • MATLAB知识点:mean : 计算平均值(mean/average value)

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.4.1节 假设向量 ,即向量y有n个元素,那么它的平均值等于. 在MATLAB中,mean函数可以用来计算

    2024年04月09日
    浏览(78)
  • MATLAB知识点: SSE: 误差平方和、 MSE: 均方误差、RMSE: 均方根误差、MAE: 平均绝对误差、MAPE: 平均绝对百分比误差、SMAPE: 对称平均绝对百分比误差、R方: 决定系数

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.4.2 算术运算 学完了矩阵的算术运算后,我们来做一些练习。 假设真实值是向量 ,拟合值或

    2024年02月21日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包