请教matlab的exist函数的用法?

if exist('dpos')==0 % dpos
dpos = 0;
end 其中dops=[1;2;3]

if length(pos0)==1 % pos0
pos0 = [pos0;0;0];
end 其中pos0=[0.1; 0.2;0.3]
这两段程序怎么解释的呢

  exist在matlab中是用于检验某个参数变量是否存在或是否符合设定要求的函数,其不同的返回值代表的不同含义。
  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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-01
上面判断如果dpos是不是存在,如果不存在就初始化为0
下面是判断如果pos0的长度是1的话在后面加上两个0使长度变成3
第2个回答  推荐于2017-11-24
官方帮助,建议阅读:http://www.mathworks.cn/help/techdoc/ref/exist.html
如果不存在dpos这个东西(变量,文件...)
dpos=0

如果ops的长度为1
pos0=[pos0;0;0]本回答被提问者采纳