目录
namedargs2cell将包含名称-值对组的结构体转换为元胞数组。
语法
C = namedargs2cell(S)
说明
C = namedargs2cell(S)
将包含名称-值对组的标量结构体数组转换为包含名称和值的元胞数组。此函数将具有n
个字段的 1×1 结构体转换为名称和值相互交错的 1×2n
元胞数组。
示例
将结构体转换为交错元胞数组
创建一个具有字段XLim、Color 和 Box的结构体,并为每个字段赋值。使用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");