要确定数组的类,请使用班级
功能:
a = [2,5,7,11];班级(a)
ans = diple.
str ='字符数组';班级(str)
ans = char.
这isa.
功能使您可以测试特定类或数字类别(数字
那漂浮
那整数
):
a = [2,5,7,11];ISA(A,'双倍的')
ans = 1
浮点值(单个和双精度值):
ISA(A,'漂浮')
ans = 1
数值(浮点和整数值):
ISA(A,'数字')
ans = 1
isa.
对于从指定类派生的类返回true。例如,sub
类从内置类型中派生int16
:
Classdef.subint方法功能obj = subint(数据)如果nargin == 0 data = 0;结尾obj = obj @ int16(数据);结尾结尾结尾
根据定义,一个实例sub
班级也是一个例子int16
班级:
aint = subint;isa(aint,'int16')
ans = 1
使用整数
类别也退货真的
:
isa(aint,'整数')
ans = 1
这班级
函数返回的名称大多数派生对象的类:
班级(AINT)
ans = subint.
使用Strcmp.
用来的功能班级
检查特定类的函数:
a = int16(7);Strcmp(类(a),'int16')
ans = 1
因为这班级
函数将类名返回为achar
向量,继承不会影响所执行的比较结果Strcmp.
:
aint = subint;Strcmp(类(AINT),'int16')
ans = 0.
如果您定义需要输入的函数,则
马铃薯®内置类型
不是Matlab内置类型的子类
使用以下技术从输入参数中排除内置类型的子类。
测试输入参数:
如果StrcMP(类(Inputarg),'单身的')%呼叫功能别的Inputarg =单(Inputarg);结尾
假设您创建了MEX函数,mymexfcn.
,这需要两个必须是类型的数字输入双倍的
或者单身的
:
Outarray = mymexfcn(a,b)
定义包含字符数组的单元格数组双倍的
和单身的
:
floattypes = {'双倍的'那'单身的'};
%测试适当类型如果任何(strcmp(strcmp(a),floattypes))&&......任何(strcmp(strcmp(b),floattypes))Outarray = mymexfcn(a,b);别的%尝试转换输入以避免错误......结尾
用Isobject.
从内置类型的子类分离内置类型。这Isobject.
函数返回错误的
对于内置类型的实例:
%创建一个INT16数组a = int16([2,5,7,11]);Isobject(a)
ans = 0.
确定数组是否是内置整数类型之一:
如果ISA(A,'整数')&&〜isobject(a)%A是内置整数类型......结尾