- 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 End 语句
- 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 - 返回语句
- 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 - 2D 线性图
- MATLAB - 3D 图形
- MATLAB - 格式化图形
- MATLAB - 对数坐标轴图形
- MATLAB - 绘制误差线
- MATLAB - 绘制 3D 等值线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 2D 数组插值
- MATLAB - 3D 数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 2D 逆余弦变换
- 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 中,当数组共享相同的数据类型和大小,或者其中一个为标量时,这些数组被认为是兼容的。在 MATLAB 中执行逐元素运算或函数时,大小兼容的数组会自动扩展以与彼此的维度对齐。
MATLAB 兼容数组可以保存各种类型的数据,包括数字、字符串、逻辑值等。它们特别适合处理数值数据,这使得 MATLAB 成为科学和工程应用的强大工具。
以下是一些具有兼容大小的标量、向量和矩阵的示例。
行向量和列向量兼容性
行向量和列向量始终具有兼容的大小,即使它们的大小和长度不同。对这些向量进行算术运算会导致创建矩阵。
示例 1
假设您有一个 2x2 矩阵。此外,输出也是一个 2x2 矩阵。
matrix1 = [1, 2; 3, 4] matrix2 = [5, 6; 7, 8]
在此示例中,matrix1 和 matrix2 是两个 2x2 矩阵。当您在 MATLAB 命令窗口中查看输出时,matrix1 和 matrix2 将如下所示显示。
>> matrix1 = [1, 2; 3, 4] matrix2 = [5, 6; 7, 8] matrix1 = 1 2 3 4 matrix2 = 5 6 7 8 >>
现在让我们对其执行加法,如下所示:
result = matrix1 + matrix2
现在,当您在 MATLAB 命令窗口中执行上述代码行时,输出如下:
>> result = matrix1 + matrix2 result = 6 8 10 12 >>
您可以看到,逐元素相加两个 2x2 矩阵的结果也是一个 2x2 矩阵,其中相应的元素相加。
示例 2
将标量添加到 2x2 矩阵。
matrix = [1, 2; 3, 4] scalar = 5
在此示例中,matrix 是一个 2x2 矩阵,scalar 是一个标量值。当您在 MATLAB 命令窗口中检查它时,您将得到:
>> matrix = [1, 2; 3, 4] scalar = 5 matrix = 1 2 3 4 scalar = 5
现在让我们将标量与矩阵相加,如下所示:
result = matrix + scalar
现在让我们在 MATLAB 的命令窗口中检查上述内容:
>> result = matrix + scalar result = 6 7 8 9 >>
您可以看到,原始矩阵的每个元素都增加了标量值,最终得到一个新的 2x2 矩阵。
示例 3
这里我们将使用 4x2 矩阵并将其添加到一个 4x1 列向量中。
matrix = [1, 2; 3, 4; 5, 6; 7, 8] column_vector = [10; 20; 30; 40]
当您在 MATLAB 命令窗口中检查上述内容时,我们得到:
>> matrix = [1, 2; 3, 4; 5, 6; 7, 8] column_vector = [10; 20; 30; 40] matrix = 1 2 3 4 5 6 7 8 column_vector = 10 20 30 40 >>
这里矩阵是 4x2 矩阵,即它有 4 行 2 列。我们有列向量 4x1,即 4 行 1 列。
让我们将两者相加,我们将看到行保持不变,即输出将具有 4x2 的大小。
result = matrix + column_vector
现在,当您在 MATLAB 命令窗口中检查输出时,结果为:
>> result = matrix + column_vector result = 11 12 23 24 35 36 47 48 >>
列向量中的每个元素都已添加到原始矩阵的相应列中,最终得到一个新的 4x2 矩阵。
示例 4
这里我们将看到将列向量与行向量相加的结果。
column_vector = [1; 2; 3; 4] row_vector = [5, 6, 7, 8]
让我们在 MATLAB 命令窗口中检查输出:
>> column_vector = [1; 2; 3; 4] row_vector = [5, 6, 7, 8] column_vector = 1 2 3 4 row_vector = 5 6 7 8 >>
列向量的大小为 4x1,行向量的大小为 1x4。
现在让我们看看将两者相加的结果。
result = column_vector + row_vector
MATLAB 命令窗口中的输出为:
>> result = column_vector + row_vector result = 6 7 8 9 7 8 9 10 8 9 10 11 9 10 11 12 >>
结果矩阵的大小为 4x4。列向量中的每个元素都添加到行向量中相应的元素中,从而得到一个矩阵,其中每个元素都是输入向量中相应元素的总和。
示例 5
让我们也对行向量和列向量执行一个乘法和减法运算。
column_vector = [1; 2; 3; 4] row_vector = [5, 6, 7, 8] result = column_vector * row_vector
当您在 MATLAB 命令窗口中执行相同操作时,输出为:
>> column_vector = [1; 2; 3; 4] row_vector = [5, 6, 7, 8] result = column_vector * row_vector column_vector = 1 2 3 4 row_vector = 5 6 7 8 result = 5 6 7 8 10 12 14 16 15 18 21 24 20 24 28 32 >>
现在让我们执行减法运算。
column_vector = [1; 2; 3; 4] row_vector = [5, 6, 7, 8] result = column_vector - row_vector
当您在 MATLAB 命令窗口中执行相同操作时,输出为:
>> column_vector = [1; 2; 3; 4] row_vector = [5, 6, 7, 8] result = column_vector - row_vector column_vector = 1 2 3 4 row_vector = 5 6 7 8 result = -4 -5 -6 -7 -3 -4 -5 -6 -2 -3 -4 -5 -1 -2 -3 -4 >>