mxSetField (C和Fortran)
设置字段值结构数组,因为指数和字段名
C语法
#包括“矩阵。h”空白mxSetField (mxArray *点,mwIndex指数,const char *字段名,mxArray * pvalue);
Fortran语言的语法
# include“fintrf。h”子例程mxSetField (pm、索引字段名,pvalue) mwPointer点,pvalue mwIndex指数字符* (*)fieldname
参数
-
点
-
指向结构的指针
mxArray
。调用mxIsStruct
以确定是否点
指向一个结构mxArray
。 -
指数
-
索引数组的一个元素。
在C语言中,第一个元素的
mxArray
有一个指数
的0
。的指数
最后一个元素n - 1
,在那里N
数组中元素的个数。在Fortran,的第一个元素mxArray
有一个指数
的1
。的指数
最后一个元素N
,在那里N
数组中元素的个数。看到
mxCalcSingleSubscript
有关计算索引。 -
字段名
-
名称字段的结构。字段必须存在于结构。调用
mxGetFieldNameByNumber
或mxGetFieldNumber
确定现有的字段名称。 -
pvalue
-
指针指向一个
mxArray
包含你想要分配的数据字段名
。
描述
使用mxSetField
分配的内容pvalue
这个领域字段名
的元素指数
。
如果你想要替换的内容字段名
,然后第一次释放内存的现有数据。使用mxGetField
函数指针字段,电话mxDestroyArray
的指针,然后调用mxSetField
分配新值。
你不能分配pvalue
多个字段的结构或多个元素mxArray
。如果你想指定的内容pvalue
多个字段,然后使用mxDuplicateArray
然后调用函数复制数据mxSetField
在每个副本。
免费使用此函数创建内存结构,调用mxDestroyArray
只有在结构数组。不叫mxDestroyArray
在数组中pvalue
点。如果你这样做,然后用MATLAB®尝试免费两次相同的内存,腐败的记忆。
请注意
输入MEX-file常数是只读的mxArray
年代,不要修改输入。使用mxSetCell
*
或mxSetField
*
MATLAB的函数来修改细胞或字段参数导致不可预知的结果。
另请参阅
mxCreateStructArray
,mxCreateStructMatrix
,mxGetField
,mxGetFieldNameByNumber
,mxGetFieldNumber
,mxGetNumberOfFields
,mxIsStruct
,mxSetFieldByNumber
,mxDestroyArray
,mxCalcSingleSubscript
选择
C语言
在C语言中,你可以替换语句:
field_num = mxGetFieldNumber (pa,“字段名”);mxSetFieldByNumber (pa、索引field_num new_value_pa);
与调用mxSetField
:
mxSetField (pa、索引字段名,new_value_pa);
Fortran语言
在Fortran,您可以替换语句:
fieldnum = mxGetFieldNumber(点,字段名)mxSetFieldByNumber(点、索引fieldnum newvalue)
与调用mxSetField
:
mxSetField (pm、索引字段名,newvalue)
版本历史
之前介绍过的R2006a