主要内容

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有关计算索引。

字段名

名称字段的结构。字段必须存在于结构。调用mxGetFieldNameByNumbermxGetFieldNumber确定现有的字段名称。

pvalue

指针指向一个mxArray包含你想要分配的数据字段名

描述

使用mxSetField分配的内容pvalue这个领域字段名的元素指数

如果你想要替换的内容字段名,然后第一次释放内存的现有数据。使用mxGetField函数指针字段,电话mxDestroyArray的指针,然后调用mxSetField分配新值。

你不能分配pvalue多个字段的结构或多个元素mxArray。如果你想指定的内容pvalue多个字段,然后使用mxDuplicateArray然后调用函数复制数据mxSetField在每个副本。

免费使用此函数创建内存结构,调用mxDestroyArray只有在结构数组。不叫mxDestroyArray在数组中pvalue点。如果你这样做,然后用MATLAB®尝试免费两次相同的内存,腐败的记忆。

请注意

输入MEX-file常数是只读的mxArray年代,不要修改输入。使用mxSetCell*mxSetField*MATLAB的函数来修改细胞或字段参数导致不可预知的结果。

例子

看到这些例子matlabroot走读生/ / mx例子:

选择

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