empty
创建指定类的空数组
说明
本页描述 empty
方法,此方法创建给定类的空数组。要测试现有数组是否为空数组,请使用 isempty
。
返回指定类的空 0×0 数组。用类的实际名称替换 A
= ClassName.emptyClassName
。有关空数组行为的详细信息,请参阅 MATLAB 中的空数组。
返回指定维度的空数组。至少一个维数必须为 0。A
= ClassName.empty(sz1,...,szN
)
返回指定维度的空数组。至少一个维数必须为 0。A
= ClassName.empty(sizeVector
)
示例
创建空数组
在未指定大小的情况下,对 uint8
调用 empty
方法。
A = uint8.empty
A = 0x0 empty uint8 matrix
为空数组赋值会将其扩展为非空数组。赋给空数组的值必须与该数组属于同一类,或可以转换为该类。MATLAB 使用该数组类型的默认值填充数组的其他元素,对于 uint8
,默认值为 0
。
A(3,3) = 5
A = 3x3 uint8 matrix
0 0 0
0 0 0
0 0 5
初始化非空数组
要初始化非空数组,请使用函数(例如 zeros
或 ones
)用初始值填充数组。MATLAB 没有空值,因此所有非空数组的所有元素都必须有值。例如,您无法使用 empty
来创建 3×3 数组,因为有至少一个维度的长度必须为 0。
具有非零维度大小的空数组
MATLAB 允许使用具有非零大小维度的空数组,只要有至少一个维度为 0 即可。在许多迭代算法中,可能会很自然地出现这样的空数组(如 0×5 数组),它们遵循与 0×0 空数组相同的规则。该数组有一个类,但不包含任何元素。
作为记录代码的一种方式,您可以创建具有非零维度大小的空数组。例如,创建一个维度为 0×5 的 int16
空数组。
A = int16.empty(0,5)
A = 0x5 empty int16 matrix
使用 A
作为 6×5 整数矩阵的初始值,该矩阵由 1×5 个向量的垂直串联构成。
for i = 1:6 A = [A; randi(9,[1 5],"int16")]; end A
A = 6x5 int16 matrix
8 9 2 9 6
1 3 5 9 9
2 9 9 5 8
2 4 9 8 9
6 1 8 9 7
7 7 4 6 2
使用维度向量创建空数组
输入参数
sz1,...,szN
— 数组的维度
0
(默认) | 整数
数组的维数,指定为整数。至少一个维度必须为 0
。负值被视为 0
。数组大小中不包括 1
的尾部维度。
sizeVector
— 维度向量
0
(默认) | 由整数组成的行向量
维度向量,指定为非负整数的行向量。至少一个元素必须为 0
。负值被视为 0
。数组大小中不包括 1
的尾部维度。
输出参量
A
— 空数组
空数组
空数组,以指定类和维度的空数组形式返回。
详细信息
MATLAB 中的空数组
在 MATLAB® 中,空数组是有至少一个维度大小为 0 的数组。空数组没有元素。
可以通过 empty
方法初始化特定类的数组。您可以通过向空数组中赋予特定的值来将空数组扩展为非空数组。赋给数组的任何对象都必须属于同一类,或者是可以转换为空数组的类。例如,创建一个 uint8
的空数组,并尝试为其赋予一个字符串值。
A = uint8.empty;
A(3,3) = "word"
Unable to perform assignment because value of type 'string' is not convertible to 'uint8'.
用户定义的类的空数组
您可以初始化用户定义类的空数组。例如,empty
静态方法是此处定义的 ColorInRGB
类的隐藏方法。
classdef ColorInRGB properties Color (1,3) = [1,0,0]; end methods function obj = ColorInRGB(c) if nargin > 0 obj.Color = c; end end end end
调用 empty
方法。
A = ColorInRGB.empty;
通过对空数组赋值,可以将其扩展为非空数组。有关 MATLAB 如何用对象填充数组的详细信息,请参阅创建和初始化对象数组。
标识空数组
串联空数组
空数组遵守数组串联行为。例如,创建一个 double
类型的空数组,并将其串联以创建第二个数组。
A = double.empty(0,5); B = [A A]
B = 0×10 empty double matrix
提示
empty
是所有非抽象 MATLAB 类的隐藏、公共、静态方法。您可以在类定义中覆盖empty
方法。若要创建空数组并且其数据类型对创建空数组没有特殊语法要求(例如使用
[]
创建双精度数组),则可以使用此方法。
版本历史记录
在 R2008a 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)