matlab 数组 创建

这篇博客介绍了如何在 MATLAB 中创建向量,包括等间距向量、指定间距的向量以及使用 linspace 函数。还讲解了转置、数组创建函数如 rand 和全零矩阵的生成。此外,文章涵盖了索引数组的方法,如何提取和更改元素,以及对向量执行数组运算的规则。

创建向量

创建等间距向量

对于长向量,输入单个数值是不实际的。可用来创建等间距向量的替代便捷方法是使用 : 运算符并仅指定起始值和最终值。

y = 5:8
y = 
    5    6    7    8

指定间距

: 运算符使用默认的间距 1,但是您可以指定您自己的间距,如下所示。

x = 20:2:26
x = 
    20    22    24    26

向量中所需的元素数目已知

如果您知道向量中所需的元素数目(而不是每个元素之间的间距),则可以改用 linspace 函数:

linspace(first,last,number_of_elements)

注意,请使用逗号 (,) 分隔 linspace 函数的输入。

x = linspace(0,1,5)
x = 
    0    0.250    0.500    0.750    1.000

转置

linspace 和 : 运算符都可创建行向量。但是,您可以使用转置运算符 (’) 将行向量转换为列向量。

x = 1:3;
x = x'
x = 
    1
    2
    3

创建行向量并将其全部转置

您可以通过在一条命令中创建行向量并将其全部转置来创建列向量。注意此处使用圆括号来指定运算的顺序。

x = (1:2:5)'
x = 
    1
    3
    5

数组创建函数

rand

MATLAB 包含许多函数,可帮助您创建常用的矩阵,例如随机数矩阵。

x = rand(2)
x = 
    0.8147    0.1270
    0.9058    0.9134

请注意,rand(2) 命令中的 2 指定输出将为一个 2×2 的随机数矩阵。

创建非方阵

x = rand(2,3)
x = 
    0.6324    0.2785    0.9575
    0.0975    0.5469    0.9649

全零矩阵

x = zeros(6,3)

矩阵大小

size(x)

使用一行代码创建与现有矩阵大小相同的矩阵。

rand(size(x))

对数组进行索引

在这里插入图片描述

一个数值

可以使用行、列索引从数组中提取值。

y = A(5,7)

此语法将会提取 A 的第 5 行第 7 列的值,然后将结果赋给变量 y。

end

您可以使用 MATLAB 关键字 end 作为行或列索引来引用最后一个元素。

y = A(end,2)

请注意,您可以将算术运算与关键字 end 结合使用。例如:

y = A(end-1,end-2)

提取多个元素

用作索引时,冒号运算符 (😃 可指代该维度中的所有元素。以下语法

x = A(2,:)

会创建一个包含 A 中第 2 行上所有元素的行向量。

冒号运算符可以引用某个值范围。以下语法会创建一个包含矩阵 A 的第 1 行、第 2 行和第 3 行所有元素的矩阵。

x = A(1:3,:)

单个索引值可用于引用向量元素。例如

x = v(3)

会返回向量 v 的第 3 个元素(当 v 为行向量或列向量时)。

单个索引值范围可用于引用向量元素的子集。例如

x = v(3:end)

返回向量 v 的一个子集,其中包含从第三个到最后一个元素范围内的所有元素。

更改数组中的值

可以结合使用索引和赋值来修改变量的元素。

A(2) = 11

对向量执行数组运算

MATLAB 的设计让您能够自然地处理数组。例如,您可以将一个标量值与数组中的所有元素相加。

y = x + 2

可以将任意两个大小相同的数组相加,相乘或相除。

z = x + y
z = 2*x
y = x/3

使用 max 函数来确定向量的最大值。

xMax = max(x)

在单个命令中对整个向量或值数组执行数学运算。

xSqrt = sqrt(x)

* 运算符执行矩阵乘法。因此,如果您使用 * 将两个大小相同的向量相乘,则由于内部维度不一致,您将会收到一条错误消息。

z = [3 4] * [10 20]

错误使用 *
用于矩阵乘法的维度不正确。

而 .* 运算符执行按元素乘法,允许您将两个大小相同的数组的对应元素相乘。

z = [3 4] .* [10 20]
z = 
    30    80
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值