Main Content

namedargs2cell

将包含名称-值对组的结构体转换为元胞数组

说明

C = namedargs2cell(S) 将包含名称-值对组的标量结构体数组转换为包含名称和值的元胞数组。此函数将具有 n 个字段的 1×1 结构体转换为名称和值相互交错的 1×2n 元胞数组。

示例

示例

全部折叠

创建一个具有字段 XLimColorBox 的结构体,并为每个字段赋值。使用 namedargs2cell 将结构体转换为元胞数组,该数组会交错字段名称和值。

S.XLim = [1,100];
S.Color = "red";
S.Box = "on";
C = namedargs2cell(S)
C = 1×6 cell array
    {'XLim'}    {1×2 double}    {'Color'}    {["red"]}    {'Box'}    {["on"]}

编写一个函数,该函数接受特定坐标区对象属性的名称-值对组,并对这些属性值施加其他限制。

将名称-值结构体转换为名称和值相互交错的元胞数组。将该元胞数组传递给 axes 函数,该函数接受元胞数组中的名称-值对组。返回坐标区对象的句柄。

function a = myAxes(axesProps)
    arguments
        axesProps.XLim (1,2) {mustBeNumeric}
        axesProps.Color string {mustBeMember(axesProps.Color,["red","green","blue"])}
        axesProps.Box matlab.lang.OnOffSwitchState
    end
    nvCell = namedargs2cell(axesProps);
    a = axes(nvCell{:});
end

namedarg2cell 函数的输出将 arguments 代码块中定义的 axesProps 名称-值结构体转换为由名称和值组成的交错元胞数组。将 nvCell 元胞数组传递给坐标区函数,该函数接受元胞数组形式的名称-值对组。

a = myAxes("XLim",[1,10],"Color","red","Box","on");

输入参数

全部折叠

名称-值结构体,指定为标量结构体数组。

数据类型: struct

输出参量

全部折叠

由交错的名称和值组成的元胞数组,以 1×2n 元胞数组形式返回,其中 n 是输入结构体中的字段数。

数据类型: cell

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2019b 中推出

另请参阅

|