我在matlab中有一个结构,其值为<1x1 struct>.
,其名称为figurelist
。
在该结构内部,有一个名为images
的字段。在图片内部,我有25张名为img1, img2, img3, ..... , img25.
现在我做了一个for循环来提取这些图像,我基本上做了:
For K=1:25
image(figurelist.images.imgK)
PAUSE(0.25)
End
遗憾的是,这不起作用。我收到一个错误说:
??? Reference to non-existent field 'imgK'.
是否可以使用结构中的循环提取此类信息?或者我做错了什么? 感谢。
答案 0 :(得分:4)
你必须做这样的事情:
for K=1:25
image(figurelist.images.(['img' int2str(K)]))
pause(0.25)
end
由于字段名称是循环变量的函数,因此必须为字段名称构造字符串。函数INT2STR将循环变量K
的值转换为字符串,然后将其附加到'img'
以创建字段名称的字符串。然后dynamic field reference syntax(.( )
)用于使用该字符串访问字段值。
可以在Loren's blog和Doug's blog找到几个使用动态字段名称的好例子。
答案 1 :(得分:2)