PSYCHTOOLBOX工具箱及MATLAB编程实例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.2 判断类函数

5.2.1 是否为空:isempty

TF = isempty(A)

判断某项内容是否空,所判断的内容可以是字符串型、数值型、单元或结构。如果结果为真,则返回值TF=1,否则TF=0。

例如:

>> a=[];↙
>> b={};↙
>> c=struct([]);↙
>> d='';↙
>> isempty(a)↙
ans =
    1
>> isempty(b)↙
ans =
    1
>> isempty(c)↙
ans =
    1
>> isempty(d)↙
ans =
    1

参见例5.1。

5.2.2 是否为列向量:iscolumn

TF=iscolumn(V)

判断某项内容是否为列向量,如果结果为真,则返回值TF=1,否则TF=0。

例如:

>> a=rand(3)↙
a =
    0.9058   0.6324   0.5469
    0.1270   0.0975   0.9575
    0.9134   0.2785   0.9649
>> b=rand(1,3)↙
b =
    0.1576   0.9706   0.9572
>> iscolumn(a)↙
ans =
    0
>> iscolumn(b)↙
ans =
    0
>> iscolumn(rot90(b))↙
ans =
    1

5.2.3 是否为浮点数:isfloat

TF=isfloat(A)

判断某项内容是否为浮点数,如果结果为真,则返回值TF=1,否则TF=0。

例如:

>> a=randi(100)↙
a =
    43
>> b=uint16(randi(50))↙
b =
    46
>> isfloat(a)↙
ans =
    1
>> isfloat(b)↙
ans =
    0
>> whos↙
Name     Size          Bytes  Class     Attributes
a        1x1           8   double
ans      1x1           1   logical
b        1x1           2   uint16

5.2.4 是否为整数:isinteger

TF=isinteger(A)

判断某项内容是否为整数,如果结果为真,则返回值TF=1,否则TF=0。

例如:

>> a=15↙
a =
    15
>> b=int8(15)↙
b =
  15
>> isinteger(a)↙
ans =
    0
>> isinteger(b)↙
ans =
    1
>> whos↙
Name     Size          Bytes  Class     Attributes
a        1x1            8  double
ans      1x1            1  logical
b        1x1            1  int8

5.2.5 是否为逻辑值:islogical

TF = islogical(A)

判断某项内容是否为逻辑值,如果结果为真,则返回值TF=1,否则TF=0。

例如:

>> a=15;b=10;c='how'=='How'↙
c =
    0    1    1
>> islogical(a==b)↙
ans =
    1
>> islogical(c)↙
ans =
    1

5.2.6 是否为非数值:isnan

TF = isnan(A)

判断某项内容是否不是数,如果结果为真,则返回值TF=1,否则TF=0。

例如:

>> a=5/0↙
a =
  Inf
>> b=0/0↙
b =
  NaN
>> isnan(a)↙
ans =
    0
>> isnan(b)↙
ans =
    1

5.2.7 是否无穷大:isinf

TF = isinf(A)

如果结果无穷大,则返回值TF=1,否则TF=0。

例如:

>> isinf(5/0)↙
ans =
    1
>> isinf(5/15)↙
ans =
    0

5.2.8 是否为行向量:isrow

TF = isrow(V)

如果V是行向量,返回值TF=1,否则TF=0。

例如:

>> isrow([5 3 9])↙
ans =
    1
>> isrow([5; 3; 9])↙
ans =
    0

5.2.9 是否为向量:isvector

TF = isvector(A)

如果A为向量,则返回值TF=1,否则TF=0。

例如:

>> a=rand(5);↙
>> isvector(a)↙
ans =
    0
>> isvector(a(:,3))↙
ans =
    1
>> isvector(a(4,:))↙
ans =
    1

5.2.10 是否为数值:isnumeric

tf = isnumeric(A)

如果A为数值型(不论其整数还是浮点数),则返回值tf=1,否则tf=0。

例如:

>> isnumeric(rand(3))↙
ans =
    1
>> isnumeric({})↙
ans =
    0
>> isnumeric('Matlab')↙
ans =
    0

5.2.11 是否相等:isequal

tf = isequal(A, B, ...)

如果A、B、C等相等,则返回值tf=1,否则tf=0。当比较的内容包含非数(NaN)时,即使其他元素完全相同,也不相等。

例如:

>> a.f1=15;a.f2=20;↙
>> b.f1=15;b.f2=20;↙
>> c.f1=15;c.f2=25;↙
>> isequal(a,b)↙
ans =
    1
>> isequal(a,b,c)↙
ans =
    0
>> d=[5 7 9 NaN 11];↙
>> e=d;↙
>> isequal(d,e)↙
ans =
    0

5.2.12 是否为字符:ischar

tf = ischar(A)

如果A为字符,则返回值tf=1,否则tf=0。

例如:

>> ischar(90)↙
ans =
    0
>> ischar('Matlab')↙
ans =
    1

参见例5.1。

5.2.13 是否为字母:isletter

tf = isletter('str')

判断字符串每个元素是否为字母,结果为真,则对应值为1,否则为0。

例如:

>> isletter('Matlab!')↙
ans =
    1    1    1    1    1    1    0

5.2.14 是否为空格:isspace

tf = isspace('str')

判断字符串每个元素是否为空格,结果为真时,对应值为1,否则为0。

例如:

>> isspace('How are you?')↙
ans =
    0   0   0   1   0   0   0   1   0   0   0   0

5.2.15 是否为集合元素:ismember

(1)tf = ismember(A, S)

(2)tf = ismember(A, S, 'rows')

(3)[tf, loc] = ismember(A, S, ...)

判断数组A中的每个元素是否为集合S中的元素,返回值为逻辑值,其数组大小与A的大小相同。

例如:

>> ismember(5,1:10)↙
ans =
    1
>> a=randi([0 5],3)↙
a =
    2    3    3
    5    5    0
    2    5    0
>> ismember(a,1:10)↙
ans =
    1    1    1
    1    1    0
    1    1    0