matlab中exist函数说明

来源:互联网 发布:唯品会真假知乎 编辑:程序博客网 时间:2024/06/07 01:27
exist:
exist主要有两种形式,一个参数和两个参数的,作用都是用于确定某值是否存在:
1. b = exist( a)
      若 a 存在,则 b = 1; 否则 b = 0;
2. b = exist( 'name', 'kind')
      kind 表示 name 的类型,可以取的值为:builtin(内建类型),class(类),dir(文件夹),file(文件或文件夹),var(变量)。

cell:
cell 是 matlab 中的一种数据类型,用{}来定义, {}内可以放任何类型的数据和矩阵
1. A = {[ 2, 4]} 就表示新建了一个 cell 类型的变量,这个变量包含一个 2 * 1 的矩阵,要引用 cell 类型的话,直接用下标来引用,    
      如:A{1} 就可以得到[ 2, 4] 这个矩阵了。
2. 在上述的 A 中增加一个元素:(有两种方法实现)
    (1).B(2) = { ‘SecondElement’}; 
    (2).B{2} = ‘SecondElement’;
3.cell 函数:
    B = cell(100, 1)

   表示 给 B 赋予100 * 1 个cell元素,但未赋值



exist name 
等价于 r=exist(name) ,在程序里面这样更加实用
0 不存在则返回值
1 name 可以是变量名,如果存在,返回值
2 函数名、m 文件名,存在则返回值
3 mex 文件、dll 文件,存在则返回值
4 内嵌的函数,存在则返回值
5 p码文件 , 存在则返回值
6 目录,存在则返回值
7 路径,存在则返回值
8 Java class,存在则返回值

A = exist('name','kind')
name 可以是变量名,函数名、m 文件名、mex 文件、dll 文件、内嵌的函数、p码文件、目录、路径、Java class

kind可以是 :
builtin 内嵌函数
class Java class
dir 目录
file 文件或者目录
var 变量

应用举例
type = exist('plot') %说明当前目录下存在plot这个内嵌函数
type =
5

X=rand(1,1)
X =
0.9593

matabc

r=exist('X')
r =
1

r=exist('X','var')
r =
1
matabc

还有一个非常有用的,曾经在论坛讨论过
如何判定一个结构体为空
s = struct
s =
1x1 struct array with no fields.

size(s) %用size不好判定
ans =
1 1

matabc

length(s) %length也一样
ans =
1

r=exist('s.field') %用exist可以判定
r =
0