- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 功能
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线版
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据导出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策
- MATLAB - 决策语句
- MATLAB - if 语句
- MATLAB - if else 语句
- MATLAB - if…elseif else 语句
- MATLAB - 嵌套 if 语句
- MATLAB - switch 语句
- MATLAB - 嵌套 switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - for 循环
- MATLAB - while 循环
- MATLAB - 嵌套循环
- MATLAB - break 语句
- MATLAB - continue 语句
- MATLAB - end 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - return 语句
- MATLAB - 无返回值函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级
- MATLAB - map 函数
- MATLAB - mean 函数
- MATLAB - end 函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - try...catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 二维线图
- MATLAB - 三维图
- MATLAB - 图表格式化
- MATLAB - 对数坐标轴图
- MATLAB - 绘制误差条
- MATLAB - 绘制三维等高线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面图
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 二维数组插值
- MATLAB - 三维数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换函数
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 二维逆余弦变换
- MATLAB - 为坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户自定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消元法
- MATLAB - 高斯-约当消元法
- MATLAB - 简化行阶梯形
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 其他
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
MATLAB - 逻辑运算
MATLAB 提供两种类型的逻辑运算符和函数:
逐元素运算 - 这些运算符作用于逻辑数组的对应元素。
短路运算 - 这些运算符作用于标量逻辑表达式。
逐元素逻辑运算符对逻辑数组进行逐元素运算。符号 &、| 和 ~ 分别是逻辑数组运算符 AND、OR 和 NOT。
短路逻辑运算符允许对逻辑运算进行短路。符号 && 和 || 分别是逻辑短路运算符 AND 和 OR。
示例
创建一个脚本文件并输入以下代码:
a = 5;
b = 20;
if ( a && b )
disp('Line 1 - Condition is true');
end
if ( a || b )
disp('Line 2 - Condition is true');
end
% lets change the value of a and b
a = 0;
b = 10;
if ( a && b )
disp('Line 3 - Condition is true');
else
disp('Line 3 - Condition is not true');
end
if (~(a && b))
disp('Line 4 - Condition is true');
end
运行文件后,将产生以下结果:
Line 1 - Condition is true Line 2 - Condition is true Line 3 - Condition is not true Line 4 - Condition is true
逻辑运算函数
除了上述逻辑运算符外,MATLAB 还提供以下命令或函数用于相同的目的:
| 序号 | 函数和描述 |
|---|---|
| 1 | and(A, B) 查找数组或标量输入的逻辑 AND;对所有输入数组 A、B 等执行逻辑 AND,并返回一个包含设置为逻辑 1(真)或逻辑 0(假)的元素的数组。如果所有输入数组在同一数组位置都包含非零元素,则输出数组的元素设置为 1。否则,该元素设置为 0。 |
| 2 | not(A) 查找数组或标量输入的逻辑 NOT;对输入数组 A 执行逻辑 NOT,并返回一个包含设置为逻辑 1(真)或逻辑 0(假)的元素的数组。如果输入数组在同一数组位置包含零值元素,则输出数组的元素设置为 1。否则,该元素设置为 0。 |
| 3 | or(A, B) 查找数组或标量输入的逻辑 OR;对所有输入数组 A、B 等执行逻辑 OR,并返回一个包含设置为逻辑 1(真)或逻辑 0(假)的元素的数组。如果任何输入数组在同一数组位置包含非零元素,则输出数组的元素设置为 1。否则,该元素设置为 0。 |
| 4 | xor(A, B) 逻辑异或;对数组 A 和 B 的对应元素执行异或运算。如果 A(i,j,...) 或 B(i,j,...) 非零,但两者并非都非零,则结果元素 C(i,j,...) 为逻辑真 (1)。 |
| 5 | all(A) 确定数组 A 的所有数组元素是否为非零或真。
|
| 6 | all(A, dim) 沿由标量 *dim* 指定的 A 的维度进行测试。 |
| 7 | any(A) 确定是否有任何数组元素是非零的;测试数组沿各个维度的任何元素是否为非零数或逻辑 1(真)。any 函数忽略为 NaN(非数字)的条目。
|
| 8 | any(A,dim) 沿由标量 *dim* 指定的 A 的维度进行测试。 |
| 9 | 假 逻辑 0(假) |
| 10 | false(n) 是一个 n×n 的逻辑零矩阵 |
| 11 | false(m, n) 是一个 m×n 的逻辑零矩阵。 |
| 12 | false(m, n, p, ...) 是一个 m×n×p×... 的逻辑零数组。 |
| 13 | false(size(A)) 是一个与数组 A 大小相同的逻辑零数组。 |
| 14 | false(...,'like',p) 是一个与逻辑数组 p 数据类型和稀疏性相同的逻辑零数组。 |
| 15 | ind = find(X) 查找非零元素的索引和值;找到数组 X 的所有非零元素,并在向量中返回这些元素的线性索引。如果 X 是行向量,则返回的向量是行向量;否则,它返回列向量。如果 X 不包含非零元素或为空数组,则返回空数组。 |
| 16 | ind = find(X, k) ind = find(X, k, 'first') 最多返回与 X 的非零条目对应的前 k 个索引。k 必须是正整数,但可以是任何数值数据类型。 |
| 17 | ind = find(X, k, 'last') 最多返回与 X 的非零条目对应的最后 k 个索引。 |
| 18 | [row,col] = find(X, ...) 返回矩阵 X 中非零条目的行和列索引。此语法在处理稀疏矩阵时特别有用。如果 X 是 N 维数组且 N > 2,则 col 包含列的线性索引。 |
| 19 | [row,col,v] = find(X, ...) 返回 X 中非零条目的列向量或行向量 v,以及行和列索引。如果 X 是逻辑表达式,则 v 是逻辑数组。输出 v 包含通过计算表达式 X 获得的逻辑数组的非零元素。 |
| 20 | islogical(A) 确定输入是否为逻辑数组;如果 A 是逻辑数组,则返回真,否则返回假。如果 A 是从逻辑类派生的类的实例,则它也返回真。 |
| 21 | logical(A) 将数值转换为逻辑值;返回一个可用于逻辑索引或逻辑测试的数组。 |
| 22 | 真 逻辑 1(真) |
| 23 | true(n) 是一个 n×n 的逻辑 1 矩阵。 |
| 24 | true(m, n) 是一个 m×n 的逻辑 1 矩阵。 |
| 25 | true(m, n, p, ...) 是一个 m×n×p×… 的逻辑 1 数组。 |
| 26 | true(size(A)) 是一个与数组 A 大小相同的逻辑 1 数组。 |
| 27 | true(...,'like', p) 是一个与逻辑数组 p 具有相同数据类型和稀疏性的逻辑 1 数组。 |