IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> MATLAB——逻辑函数 -> 正文阅读

[数据结构与算法]MATLAB——逻辑函数

逻辑函数在交互运算及进行进行矩阵的变化中非常有用,可以很方便地查找或替换矩阵中满足一定条件的部分或所有元素。

all——判断是否所有元素都是非零数

对于向量a(行向量或列向量),如果向量中所有元素都是非零数,则all(a)返回1;否则返回0。
对于矩阵A,all(A)是作用于列向量上的,若矩阵中某列的所有元素都是非零数,则返回1;如果存在0则返回0。因此对于矩阵A,all(A)结果为与A具有同列数的行向量
在这里插入图片描述
判断矩阵元素是否都大于5——all(all(A > 5))
此处A>5返回一个逻辑矩阵,all(A>5)返回一个行向量,若该行向量中所有元素均大于0,则all(all(A>5))返回1,即说明该矩阵中所有元素均大于5.

any——判断是否存在非零数

对于向量a(行向量或列向量),如果向量中至少有一个元素是非零数,则any(a)返回1;若所有元素均为0,返回0。
对于矩阵A,any(A)是作用于列向量上的,若矩阵中某列至少含有一个非零元素,则返回1;如果全为0,则返回0。因此对于矩阵A,any(A)结果为与A具有同列数的行向量

exist——判断变量或函数是否存在

在MATLAB程序设计中,有时需要知道变量是否已经被定义过,即是否存在于当前内存中,有时还需要详细了解变量的类型,这是exist就显得非常有用。
exist的参数必须为字符串标量或字符向量,即格式为:exist(' ')其返回值a与参数’A’的关系为:

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

find——找出非零元素的位置

若需要对矩阵中符合某一特定条件的元素进行定位,比如将矩阵中为0的元素设为1,运用find和各种逻辑、关系运算可以实现绝大多数条件的元素定位。

注意:按列查找

  • a = find(A)——返回非零元素的序号
>> a = [0, 1, 4, 0, 5];
>> find(a)

ans =

     2     3     5   
     
>> a = [0, 1; 2, 3; 0, 4]

a =

     0     1
     2     3
     0     4

>> find(a)

ans =

     2
     4
     5
     6

>> % 所显示的序号是按列从1开始进行数的
>> 
>> b(:, :, 1) = [0, 0; 1, 2];
>> b(:, :, 2) = [3, 4; 5, 6];
>> b

b(:,:,1) =

     0     0
     1     2


b(:,:,2) =

     3     4
     5     6

>> find(b)

ans =

     2
     4
     5
     6
     7
     8
  • [i, j] = find(A)——适用于矩阵,返回非零元素的行、列的序号。常用于稀疏矩阵中。
>> a = [1, 2, 3; 4, 5, 6; 7, 8, 9];
>> [i, j] = find(a)

i =

     1
     2
     3
     1
     2
     3
     1
     2
     3


j =

     1
     1
     1
     2
     2
     2
     3
     3
     3
  • [i, j, v] = find(A)——v中存放非零元素的值,i、j与上面的相同
>> a = [1, 2, 3; 4, 5, 6; 7, 8, 9];
>> [i, j, v] = find(a)

i =

     1
     2
     3
     1
     2
     3
     1
     2
     3


j =

     1
     1
     1
     2
     2
     2
     3
     3
     3


v =

     1
     4
     7
     2
     5
     8
     3
     6
     9

矩阵替换:a(find(a == 3)) = b(find(a == 3))

>> a = [1, 1, 1; 2, 2, 2; 3, 3, 3];
>> b = [9, 9, 9; 8, 8, 8; 7, 7, 7];
>> a

a =

     1     1     1
     2     2     2
     3     3     3

>> b

b =

     9     9     9
     8     8     8
     7     7     7

>> a(find(a == 2)) = b(find(a == 2)); //将a矩阵中值为2的元素替换为b矩阵中相应位置的元素
>> a

a =

     1     1     1
     8     8     8
     3     3     3

删除元素:a(find(5)) = []

>> a = [1, 2, 3; 4, 5, 6; 7, 8, 9]

a =

     1     2     3
     4     5     6
     7     8     9

>> a(find(a == 5)) = [];   //删除矩阵中值为5的元素,同时将矩阵转化为一个向量
>> a

a =

     1     4     7     2     8     3     6     9

>> whos
  Name      Size            Bytes  Class     Attributes

  a         1x8                64  double              

删除矩阵中的某一行——赋值为[ ]

>> a = [1, 2, 3; 4, 5, 6; 7, 8, 9]

a =

     1     2     3
     4     5     6
     7     8     9

>> a(2, :) = [];  //删除矩阵中的第2行
>> a 

a =

     1     2     3
     7     8     9

isfinite——判断矩阵元素是否为有限值

若是有限值,则相应位置返回1, 否则返回0

isinf——判断矩阵元素是否为无限值

若是无限值,则相应位置返回1, 否则返回0
注意:NaN、+Inf、-Inf等都被视为无限值。

NaN称为不确定值,通常由 0 0 、 I n f + I n f 、 I n f I n f \frac{0}{0}、Inf +Inf、\frac{Inf}{Inf} 00?Inf+InfInfInf? N a N NaN NaN与其它任何数进行运算得到.
复数除以0会得到 N a N NaN NaN.
I n f Inf Inf称为无穷大数,可以由任意非零实数除以0得到.

isinfinite和isinf函数返回的都是与参数规模相同的矩阵

>> a = [1, 2, 3; 4, 5, 6; 7, 8, 9];
>> isfinite(a)

ans =

  3×3 logical 数组

   1   1   1
   1   1   1
   1   1   1

isempty——判断矩阵是否为空矩阵

矩阵为空则返回1,否则返回0.

注意区分:空矩阵、零矩阵、矩阵不存在
空矩阵:矩阵存在,但矩阵中没有元素
零矩阵:矩阵中所有元素均为0
矩阵不存在:当前工作空间中没有定义该矩阵变量

isequal——判断几个对象是否相同

>> a = [1, 2, 3; 4, 5, 6; 7, 8, 9];
>> b = [1, 2, 3; 4, 5, 6; 7, 8, 9];
>> c = [1, 2, 3; 4, 5, 6; 7, 8, 9];
>> isequal(a, b, c)
ans =
  logical
   1

isnumeric——判断矩阵元素是否为数据

如果矩阵是数据矩阵,如稀疏矩阵、双精度矩阵、复数矩阵等,则返回1;反之,如果是字符串、结构体矩阵等,则返回0.

issparse——判断矩阵是否为稀疏矩阵

ischar——判断是否为字符串

islogical——判断矩阵是否为逻辑类型

isfield——判断是否为某个结构体矩阵的域

isstruct——判断是否为结构体类型

ishandle——判断是否为图像句柄

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:50:25  更:2021-09-24 10:54:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:48:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码