mxGetField (C和Fortran)
从结构数组,指针字段值指数和字段名
C语法
#包括“矩阵。h”mxArray * mxGetField (const mxArray *点,mwIndex指数,const char *字段名);
Fortran语言的语法
# include“fintrf。h”mwPointer mxGetField (pm、索引字段名)下午mwPointer mwIndex指数字符* (*)fieldname
参数
-
点
-
指向结构的指针
mxArray
-
指数
-
所需的元素的索引。
在C语言中,第一个元素的
mxArray
有一个指数
的0
。的指数
最后一个元素n - 1
,在那里N
数组中元素的个数。在Fortran,的第一个元素mxArray
有一个指数
的1
。的指数
最后一个元素N
,在那里N
数组中元素的个数。 -
字段名
-
字段的值的名称你想提取。
返回
指针mxArray
在指定的字段指定字段名
在成功。返回零
在C (0
在Fortran)如果一个无效的参数传递或者没有分配给指定的字段值。失败的常见原因包括:
指定数组指针
点
这并不指向一个结构mxArray
。以确定是否点
指向一个结构mxArray
,叫mxIsStruct
。指定一个
指数
一个元素的范围之外mxArray
。例如,给定一个结构mxArray
包含10个元素,你不能指定一个指数
大于9
在C (10
在Fortran)。指定一个不存在的
字段名
。调用mxGetFieldNameByNumber
或mxGetFieldNumber
现有的字段名称。堆空间不足。
描述
调用mxGetField
获取指定的字段的值包含在指定的元素。在pseudo-C术语中,mxGetField
返回值:
点(指数).fieldname
mxGetFieldByNumber
就像mxGetField
。两个函数返回相同的值。唯一的区别是你指定的方式。mxGetFieldByNumber
需要一个字段作为第三个参数数量,mxGetField
字段名作为第三个参数。
不叫mxDestroyArray
在一个mxArray
返回的mxGetField
函数。
请注意
输入MEX-file常数是只读的mxArray
年代,不要修改输入。使用mxSetCell
*
或mxSetField
*
MATLAB的函数来修改细胞或字段®争论导致不可预知的结果。
在C语言中,调用:
mxGetField (pa、索引“field_name”);
相当于调用:
field_num = mxGetFieldNumber (pa,“field_name”);mxGetFieldByNumber (pa、索引field_num);
在那里,如果你有一个吗1
——- - - - - -1
结构,指数
是0
。
在Fortran语言调用:
mxGetField (pm、索引字段名)
相当于调用:
fieldnum = mxGetFieldNumber(点,字段名)mxGetFieldByNumber(点、索引fieldnum)
在那里,如果你有一个吗1
——- - - - - -1
结构,指数
是1
。
另请参阅
mxGetFieldByNumber
,mxGetFieldNameByNumber
,mxGetFieldNumber
,mxGetNumberOfFields
,mxIsStruct
,mxSetField
,mxSetFieldByNumber
版本历史
之前介绍过的R2006a