MATLAB 数组漫谈
MATLAB 作为一款强大的数学计算软件,其最核心的功能就是对各种数据进行处理和分析。而在 MATLAB 中,最基本的数据类型就是数组。本文将从数组的定义、创建、操作、索引、切片等方面,对 MATLAB 数组进行详细讲解。
一、数组的定义
数组是一种可以容纳多个数据元素的数据结构。在 MATLAB 中,数组的定义是以行向量或列向量的形式存在,且可以是多维数组。其中,最基本的数组就是一维数组,即向量。例如:
a = [1, 2, 3, 4, 5] % 行向量
b = [1; 2; 3; 4; 5] % 列向量
使用“[]”代表数组元素,元素之间可以使用逗号或分号隔开,分别表示行和列的分隔符。对于多维数组,可以使用“[]”嵌套的方式进行定义。例如:
c = [1, 2, 3; 4, 5, 6] % 2 × 3 的矩阵
d = [1; 2; 3] % 3 × 1 的列向量
二、数组的创建
在 MATLAB 中,有多种方式可以创建数组。下面分别介绍几种比较常用的方式。
1. 直接输入
可以直接在命令窗口中输入数组的值,不需要使用任何命令。例如:
>> a = [1, 2, 3; 4, 5, 6]
a =
1 2 3
4 5 6
2. linspace 命令
使用 linspace 命令可以创建一个等间距的向量。其语法格式为:
vector = linspace(start, end, n)
其中,start 表示向量的起始值,end 表示向量的结束值,n 表示向量的长度。例如:
>> x = linspace(0, 1, 11)
x =
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
3. logspace 命令
使用 logspace 命令可以创建一个等比数列。其语法格式为:
vector = logspace(start, end, n)
其中,start 表示向量的起始值的 10 的幂次方,end 表示向量的结束值的 10 的幂次方,n 表示向量的长度。例如:
>> y = logspace(0, 2, 6)
y =
1.0000 3.1623 10.0000 31.6228 100.0000 316.2278
4. zeros 命令
使用 zeros 命令可以创建一个全零数组。其语法格式为:
zeros(m, n)
其中,m 表示数组的行数,n 表示数组的列数。例如:
>> z = zeros(3, 4)
z =
0 0 0 0
0 0 0 0
0 0 0 0
5. ones 命令
使用 ones 命令可以创建一个全一数组。其语法格式和 zeros 命令一样。例如:
>> I = ones(2, 3)
I =
1 1 1
1 1 1
三、数组的操作
在 MATLAB 中,有多种方式可以对数组进行操作。下面分别介绍几种比较常用的操作。
1. 数组转置
使用“'”符号可以将数组进行转置。例如:
>> a = [1, 2, 3; 4, 5, 6]
a =
1 2 3
4 5 6
>> b = a'
b =
1 4
2 5
3 6
2. 数组相加
使用“+”符号可以将两个数组进行相加。其中,对于两个数组的维度必须相同。例如:
>> a = [1, 2, 3; 4, 5, 6]
a =
1 2 3
4 5 6
>> b = [2, 4, 6; 8, 10, 12]
b =
2 4 6
8 10 12
>> c = a + b
c =
3 6 9
12 15 18
3. 数组相乘
使用“*”符号可以将两个数组进行相乘。其中,对于两个数组的维度必须符合矩阵乘法的规则。例如:
>> a = [1, 2; 3, 4]
a =
1 2
3 4
>> b = [2, 3; 4, 5]
b =
2 3
4 5
>> c = a * b
c =
10 13
22 29
4. 数组点乘
使用“.*”符号可以将两个数组进行点乘。其中,对于两个数组的维度必须相同。例如:
>> a = [1, 2; 3, 4]
a =
1 2
3 4
>> b = [2, 3; 4, 5]
b =
2 3
4 5
>> c = a .* b
c =
2 6
12 20
5. 数组点除
使用“./”符号可以将两个数组进行点除。其中,对于两个数组的维度必须相同。例如:
>> a = [1, 2; 3, 4]
a =
1 2
3 4
>> b = [2, 3; 4, 5]
b =
2 3
4 5
>> c = a ./ b
c =
0.5000 0.6667
0.7500 0.8000
6. 数组转换
使用“reshape”命令可以将一个数组转换为另一个数组。其语法格式为:
B = reshape(A, m, n)
其中,A 是要转换的数组,m 和 n 是转换后数组的行数和列数。例如:
>> A = [1, 2, 3, 4, 5, 6]
A =
1 2 3 4 5 6
>> B = reshape(A, 2, 3)
B =
1 3 5
2 4 6
四、数组的索引
在 MATLAB 中,可以使用索引来访问数组中的元素。其中,一维数组的索引方式和其他语言类似,可以使用下标方式进行访问,下标从 1 开始。例如:
>> a = [1, 2, 3, 4, 5]
a =
1 2 3 4 5
>> a(3)
ans =
3
对于多维数组,可以使用“()”和“{}”两种方式进行索引。其中,“()”表示对数组进行索引,返回的是一个数组。而“{}”表示对数组进行索引,返回的是一个元素。例如:
>> A = [1, 2, 3; 4, 5, 6]
A =
1 2 3
4 5 6
>> A(2, 3)
ans =
6
>> B = {1, 2, 3; 4, 5, 6}
B =
2×3 cell array
{[1]} {[2]} {[3]}
{[4]} {[5]} {[6]}
>> B{2, 3}
ans =
6
五、数组的切片
在 MATLAB 中,可以使用切片来获取数组的一部分。切片方式为:
array(i:j)
其中,i 和 j 分别表示切片的开始和结束位置。例如:
>> a = [1, 2, 3, 4, 5]
a =
1 2 3 4 5
>> a(2:4)
ans =
2 3 4
对于多维数组,可以使用“:”号表示所有的行或列。例如:
>> A = [1, 2, 3; 4, 5, 6; 7, 8, 9]
A =
1 2 3
4 5 6
7 8 9
>> A(2, :)
ans =
4 5 6
>> A(:, 2)
ans =
2
5
8
MATLAB 数组漫谈相关推荐
- 第三章 Matlab数组
第三章 Matlab数组 一维数组 一维数组的创建 一维数组中元素的提取 二维数组 二维数组的创建 二维数组中元素的提取 字符数组 字符数组的创建 字符数组的拼接 字符数组的显示 空数组 一维数组 一 ...
- MATLAB数组相除
MATLAB数组相除 %数组的除法 clear all %清空MATLAB中的数据 a=[2 5 9 8 7 6] b=[7 5 6 2 9 0] c=a./b %a/b 对应位置相除 d=a.\b ...
- MATLAB数组乘方
MATLAB数组乘方 %数组的乘方 clear all %清空MATLAB中的数据 a=[1 5 9 8 7 6] b=[7 7 6 2 9 0] c=a.^b %数组的乘法 d=a.^2 %数组的某 ...
- matlab数组从零开始,MATLAB数组
MATLAB数组 在 MATLAB中,所有的所有数据类型的变量是多维数组.向量是一个一维阵列,矩阵是一个二维数组. 我们已经讨论过的向量和矩阵.在本章中,我们将讨论多维数组.然而,在这之前,让我们讨论 ...
- Matlab数组操作_实现三维数组的写入与读取
Matlab数组操作 三维数组的写入 将多个二维数组写入三维数组中 %原始二维数组 a1=[0.25 0.25 0.25 0.25 0.23;0.25 0.25 0.11 0.27 0.27;0.25 ...
- MATLAB 数组作为 Python 变量
目录 在 Python 中创建 MATLAB 数组 Python 中的 MATLAB 数组属性和方法 Python 中的多维 MATLAB 数组 在 Python 中对 MATLAB 数组进行索引 在 ...
- MATLAB数组的一些操作
MATLAB数组的一些操作 1 数组元素位置 2 二维数组下标和线性索引装换 2.1.1 数组的元素位置和线性索引位置都能得到数值 2.1.2 线性索引和行列的关系 2.1.3 下标转换为线性索引su ...
- Matlab数组创建、数组寻址、数组排序、数组检测、数组结构
Matlab数组创建.数组寻址.数组排序.数组检测.数组结构 一.数组创建 1.一维数组的创建 P43 2.二维数组的创建 P45 二.数组寻址 1.一维数组寻址 P46 2.二维数组寻址 P49 三 ...
- MATLAB数组的左右移动
MATLAB数组的左右移动 说明 MATLAB代码 说明 我们在MATLAB的数组操作中,例如时域的平移,需要将数组向左/右平移N个单位.下方的代码给出了一个简单的操作函数.其中平移之后的补全采用了两 ...
最新文章
- python——异常(1),捕获特定异常
- linux重新编译mysql_linux下编译安装mysql++ | 学步园
- python 文件格式转换_python实现txt文件格式转换为arff格式
- LeetCode 121:买卖股票的最佳时机 思考分析
- 表格控件对比_小白如何开发出苏宁易购同款表格协同文档系统?
- java 的类和接口的变量调用
- 排序 -> 快速排序
- 基于JAVA+Servlet+JSP+MYSQL的读者荐购系统
- [导入]PropertyGrid代码示例(Ext1.x)
- 洛谷——P2550 [AHOI2001]彩票摇奖
- C++ 常见错误(03) —— cout输出图像路径
- 【转贴】蚂蚁和大象的恩怨
- 软件测试测试工具总结
- linux信号灯超时时间已到,急!!信号灯超时时间已到错误又出来了!!!!
- 高校校园网建设方案【含网络拓扑图+拓扑结构图+配置命令】(详细版)
- O2O到家业务:如何在配送履约环节,做到极致优化?
- 【强烈推荐】原导师评价网上不去了,新版在这里
- AMP Adversarial Motion Priors for Stylized Physics-动作生成算法
- Linux vim/vi下backspace(退格键)出现^? 或^H
- angular前后台通讯-笔记(1)
热门文章
- 全变分 tv 图像matlab程序,全变分(TV)模型原理与C++实现
- 覆盖率仅30%,四川高速公路服务区充电站现状与发展
- 技师计算机实际操作考试题库,技师操作题库_相关文章专题_写写帮文库
- 机械设计图纸管理有什么办法,机械图纸管理有效方案
- 小程序人像卡通化(Java)(模板使用)
- Python新手学习(三)
- 《J2SE 回炉再造16》-------溺水狗
- H3C交换机开启关闭端口及限速
- 【Autosar 存储栈Memery Stack 4.Tc397的Flash编程】
- 【AssemblyInfo.cs】为程序设置版本和帮助信息