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 数组漫谈相关推荐

  1. 第三章 Matlab数组

    第三章 Matlab数组 一维数组 一维数组的创建 一维数组中元素的提取 二维数组 二维数组的创建 二维数组中元素的提取 字符数组 字符数组的创建 字符数组的拼接 字符数组的显示 空数组 一维数组 一 ...

  2. 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 ...

  3. 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 %数组的某 ...

  4. matlab数组从零开始,MATLAB数组

    MATLAB数组 在 MATLAB中,所有的所有数据类型的变量是多维数组.向量是一个一维阵列,矩阵是一个二维数组. 我们已经讨论过的向量和矩阵.在本章中,我们将讨论多维数组.然而,在这之前,让我们讨论 ...

  5. 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 ...

  6. MATLAB 数组作为 Python 变量

    目录 在 Python 中创建 MATLAB 数组 Python 中的 MATLAB 数组属性和方法 Python 中的多维 MATLAB 数组 在 Python 中对 MATLAB 数组进行索引 在 ...

  7. MATLAB数组的一些操作

    MATLAB数组的一些操作 1 数组元素位置 2 二维数组下标和线性索引装换 2.1.1 数组的元素位置和线性索引位置都能得到数值 2.1.2 线性索引和行列的关系 2.1.3 下标转换为线性索引su ...

  8. Matlab数组创建、数组寻址、数组排序、数组检测、数组结构

    Matlab数组创建.数组寻址.数组排序.数组检测.数组结构 一.数组创建 1.一维数组的创建 P43 2.二维数组的创建 P45 二.数组寻址 1.一维数组寻址 P46 2.二维数组寻址 P49 三 ...

  9. MATLAB数组的左右移动

    MATLAB数组的左右移动 说明 MATLAB代码 说明 我们在MATLAB的数组操作中,例如时域的平移,需要将数组向左/右平移N个单位.下方的代码给出了一个简单的操作函数.其中平移之后的补全采用了两 ...

最新文章

  1. python——异常(1),捕获特定异常
  2. linux重新编译mysql_linux下编译安装mysql++ | 学步园
  3. python 文件格式转换_python实现txt文件格式转换为arff格式
  4. LeetCode 121:买卖股票的最佳时机 思考分析
  5. 表格控件对比_小白如何开发出苏宁易购同款表格协同文档系统?
  6. java 的类和接口的变量调用
  7. 排序 -> 快速排序
  8. 基于JAVA+Servlet+JSP+MYSQL的读者荐购系统
  9. [导入]PropertyGrid代码示例(Ext1.x)
  10. 洛谷——P2550 [AHOI2001]彩票摇奖
  11. C++ 常见错误(03) —— cout输出图像路径
  12. 【转贴】蚂蚁和大象的恩怨
  13. 软件测试测试工具总结
  14. linux信号灯超时时间已到,急!!信号灯超时时间已到错误又出来了!!!!
  15. 高校校园网建设方案【含网络拓扑图+拓扑结构图+配置命令】(详细版)
  16. O2O到家业务:如何在配送履约环节,做到极致优化?
  17. 【强烈推荐】原导师评价网上不去了,新版在这里
  18. AMP Adversarial Motion Priors for Stylized Physics-动作生成算法
  19. Linux vim/vi下backspace(退格键)出现^? 或^H
  20. angular前后台通讯-笔记(1)

热门文章

  1. 全变分 tv 图像matlab程序,全变分(TV)模型原理与C++实现
  2. 覆盖率仅30%,四川高速公路服务区充电站现状与发展
  3. 技师计算机实际操作考试题库,技师操作题库_相关文章专题_写写帮文库
  4. 机械设计图纸管理有什么办法,机械图纸管理有效方案
  5. 小程序人像卡通化(Java)(模板使用)
  6. Python新手学习(三)
  7. 《J2SE 回炉再造16》-------溺水狗
  8. H3C交换机开启关闭端口及限速
  9. 【Autosar 存储栈Memery Stack 4.Tc397的Flash编程】
  10. 【AssemblyInfo.cs】为程序设置版本和帮助信息