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
- 大数据
- 云计算