NAMES = fieldnamesr(S)返回一个字符串单元格数组,其中包含与S相关联的结构字段名,属于S的任何结构的结构字段名,属于S的任何结构的结构字段名,等等。
NAMES = fieldnamesr(S,DEPTH)是一个可选字段,它允许定义搜索的深度。默认值是-1,不限制深度搜索。深度为1将只返回s的字段名(类似于FIELDNAMES)。深度为2将返回这些字段名,以及字段为s的任何结构的字段名,等等。
NAMES = fieldnamesr(…,'full')返回结构字段的名称,以及这些结构的内容,作为独立的单元格。这与返回结构树的默认情况不同。
NAMES = fieldnamesr(…,'prefix')返回以输入结构的名称为前缀的字段的名称。
NAMES = fieldnamesr(…,'struct')只返回结构字段的名称。
亚当(2021)。以递归方式获取结构字段名(//www.tatmou.com/matlabcentral/fileexchange/33262-get-structure-field-names-in-recursive-manner), MATLAB中央文件交换。检索.
谢谢!。在我的例子中,它工作得很好,结构是由to-workspace块记录的。
很好的代码。不幸的是,没有返回结构节点的值
太棒了。时期。
太棒了!
太完美了,省了我几天的工作!
你好亚当,
对于一个非常复杂的结构,我得到这个错误。
fieldnamesr出错(第95行)
if isstruct(eval(NAMES{i})) == 1
期望一个花括号或点索引表达式的输出,但有两个结果。
fieldnamesr出错(第95行)
if isstruct(eval(NAMES{i})) == 1
对我不起作用:
它落在一个结构体上,其格式如下:
(1)。b =…
(2)。b =…
因为第95行eval (a.b{1})给出了一个错误。
期望一个花括号或点索引表达式的输出,但确实有
149的结果。”
你好亚当
在调用
“满”fieldnamesr (SPM)
,其中SPM是由神经成像软件SPMa产生的复杂结构变量,我得到误差
期望从花括号或点索引表达式输出一个结果,但有8个结果。
fieldnamesr出错(第95行)
if isstruct(eval(NAMES{i})) == 1
知道如何编辑脚本以便解析任何复杂的结构吗?谢谢!
你好亚当
在调用
“满”fieldnamesr (SPM)
,其中SPM是一个复杂的结构变量,得到误差
期望从花括号或点索引表达式输出一个结果,但有8个结果。
fieldnamesr出错(第95行)
if isstruct(eval(NAMES{i})) == 1
你知道怎么修理吗?谢谢!
太棒了,谢谢!
我必须修改3行才能让它生效:
68:名称= cellfun (@ (x) strcat((1)。,x,“(1)”),字段名,“UniformOutput”,假);
99:名字{我}),x,“(1)”),fndtemp2, UniformOutput,假);
125:名称= cellfun (@ (x) regexprep (x,“[(1)]”,“),名字,UniformOutput,假);
问候,
Pieter
好作品,谢谢分享!我将使用它灵活地访问具有相同字段和子字段名称但不一定具有相同结构顺序的结构。
正如我所希望的!
谢谢!
让我不用自己写剧本……:)
省了我写的麻烦。刚开始的时候效果很好。还没有在结构体数组上测试,但满足我目前的需求。谢谢!
当我尝试时,这个函数抛出以下错误
s = fieldnamesr (a)
.d a.b.c(1,1)。e = 1
a.b.c (2, 1) .d的地方。e = 2
在a.b.c .d(3,1)。e = 3
???非标量结构上的点名引用。
Error in ==> fieldnamesr at 95
if isstruct(eval(NAMES{i})) == 1
我得到相同的错误与R2011a和R2008a。