【发布时间】:2013-09-30 03:54:51
【问题描述】:
我有这个来自 matlab 参考手册
value = getfield(struct, 'field')
其中struct是一个1×1结构,返回指定字段的内容,相当于
value = struct.field
我该如何做相反的事情
getStringName(struct.field) 返回'field'
如果有可能以类似于数组的数字方式指向字段
类似于字段 1 的结构{1} field
编辑
如果我这样做了
结构名称(1) 我得到一个字段名称和维度列表
Speed: [2244x1 double]
Time: [2244x1 double] ... and so on
我想把标题速度作为字符串,如果可能的话
structName(1).filed(1) 为 Speed 不做 structName(1).Speed
我想将每个字段打印到带有字段名称的文件中!
如果我这样做了
for i=1:sizeOfStruct
printToFile(structName(i)); %<=== accessing field by index, problem 2
end
function printToFile(structField)
structFieldStr = getStrFiledName(structField); %<=== obtain field string, main problem
filename = strcat(fileLoc, '/profile/', structFieldStr, '.dat');
%... then open file and dump everything
end
【问题讨论】:
-
除非它出现在赋值的左侧,否则
struct.field只是一个值,例如2.5,不再与结构对象有任何联系。 -
fieldnames函数是否给出了您想要的,或者您是否试图找到包含某个值的字段?你也可以试试inputname,不知道是否适用于结构成员 -
fieldnames 给了我一个部分,剩下的就是通过它的位置或字段名称来抓取该字段