for循环从结构中提取信息不起作用?

时间:2010-05-13 20:14:59

标签: matlab loops for-loop

我在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'.

是否可以使用结构中的循环提取此类信息?或者我做错了什么? 感谢。

2 个答案:

答案 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 blogDoug's blog找到几个使用动态字段名称的好例子。

答案 1 :(得分:2)