MATLAB空数组
MATLAB 空数组是开发人员定义的一个数据类型(这一点与 MATLAB NaN 不同,因为 NaN 是由 IEEE 标准定义的),它指有一维或多维的长度为 0 的数组变量。空数组的表达方式也很多,最简单的一种是直接用两个方括号表示的数组,即
例如,下面的代码给出了几种空数组的创建方式,并用 size 或 length 查看了它们的维数或长度。
空数组有时也出现在一些函数的返回参数中。在 MATLAB 中,很多函数在无法返回适当结果时,往往会返回空数组。
其中最典型的一个函数就是 find() 函数,下面给出了一个具体的例子。
可以使用 isempty() 函数测试一个返回值是否是空数组,例如:
由于空数组也存在维数(如前面创建的 c 为 0×5 的数组),在 MATLAB 中,不同维数的空数组之间是不能进行比较的,因此,验证一个数组是否是空数组时,最好不要使用关系运算,建议使用 isempty() 函数。
例如,要验证前面创建的 c 是否是空数组,只能采用 isempty() 函数,代码如下:
当用户确认空数组是最简单的空数组
也可以将一个非空数组与一个空数组进行比较,结果返回一个空数组,例如:
[ ]
数组。例如,下面的代码给出了几种空数组的创建方式,并用 size 或 length 查看了它们的维数或长度。
>> size([]) %最简单的空数组 ans = 0 0 >> c=zeros(0,5) %一个多列的空数组 c = 空的 0×5 double 矩阵 >> size(c) ans = 0 5 >> d=ones(4,0) %一个多行的空数组 d = 空的 4×0 double 矩阵 >> size(d) ans = 4 0 >> length(d) %即使它有4行,但是它的长度还是为零, ans = 0使一个数组的维数为 0 也许会让读者感到困惑,但这在许多运算中是非常有用的,随着本节的深入,读者会对其有更深的了解。
空数组有时也出现在一些函数的返回参数中。在 MATLAB 中,很多函数在无法返回适当结果时,往往会返回空数组。
其中最典型的一个函数就是 find() 函数,下面给出了一个具体的例子。
>> x=-2:2 x = -2 -1 0 1 2 >> y=find(x>2) y = 空的 1×0 double 行矢量在这个例子中,数组 x 中不存在大于 2 的值,因此找不到正确的索引值,于是 find 就返回一个空数组。
可以使用 isempty() 函数测试一个返回值是否是空数组,例如:
>> isempty(y) ans = 1
由于空数组也存在维数(如前面创建的 c 为 0×5 的数组),在 MATLAB 中,不同维数的空数组之间是不能进行比较的,因此,验证一个数组是否是空数组时,最好不要使用关系运算,建议使用 isempty() 函数。
例如,要验证前面创建的 c 是否是空数组,只能采用 isempty() 函数,代码如下:
>> c==[] %用一个 0×5 的数组和一个 0×0 的数组比较会出错 错误使用 == 矩阵维度必须一致。 >> isempty(c) %isempty()返回所需的结果 ans = 1
当用户确认空数组是最简单的空数组
[ ]
时,关系运算也成立,只不过运算结果仍是空数组,例如:
>> a=[]; %创建空数组 >> a==[] %比较大小相等的空数组仍然会得到一个空数组 ans = []
也可以将一个非空数组与一个空数组进行比较,结果返回一个空数组,例如:
>> b=1; %创建非空变量 >> b==[] %将非空变量与空变量进行比较会产生空结果 ans = [] >> b~=[] %即使不相等的比较也会产生空结果 ans = []由上面的例子可以看出,对空数组执行关系运算时,要么返回一个错误信息(如在两个不同维数的空数组之间进行比较时),要么返回一个空数组(如前面的两个例子),这通常都不是我们想要的结果,因此,当有空数组出现时,建议用户使用 isempty() 函数,尽量不要使用关系运算。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算