Matlab 用于从结构提取信息的循环不';不行?
我在matlab中有一个结构,它的值是Matlab 用于从结构提取信息的循环不';不行?,matlab,loops,for-loop,Matlab,Loops,For Loop,我在matlab中有一个结构,它的值是,它的名字是figurelist。 在该结构中,有一个名为images的字段。在图像内部,我有25个图像,它们的名称分别为img1、img2、img3,img25. 现在我做了一个for循环来提取这些图像,我基本上做到了: For K=1:25 image(figurelist.images.imgK) PAUSE(0.25) End 不幸的是,这不起作用。我得到一个错误,说: ???引用不存在的字段“imgK”。 是否可以使用结构
,它的名字是figurelist
。
在该结构中,有一个名为images
的字段。在图像内部,我有25个图像,它们的名称分别为img1、img2、img3,img25.
现在我做了一个for循环来提取这些图像,我基本上做到了:
For K=1:25
image(figurelist.images.imgK)
PAUSE(0.25)
End
不幸的是,这不起作用。我得到一个错误,说:
???引用不存在的字段“imgK”。
是否可以使用结构中的循环提取此类信息?还是我做错了什么?
谢谢。您必须这样做:
for K=1:25
image(figurelist.images.(['img' int2str(K)]))
pause(0.25)
end
由于字段名是循环变量的函数,因此必须为字段名构造字符串。函数将循环变量K
的值转换为字符串,然后将该字符串附加到'img'
以创建字段名的字符串。然后(()
)用于使用该字符串访问字段值
在和上可以找到几个使用动态字段名的好例子。我相信您正在寻找的是动态字段名:谢谢您解决了这个问题(我必须等待10分钟才能接受)。。。你能解释一下你做了什么吗?将整数转换为K的字符串。。为什么?所以它可以将其作为值而不是字符来读取??或者什么是新手的解决方案似乎有效,但我很好奇为什么要将变量命名为img[1,2,3],而不是将它们存储在数组中。后者将是一个更具可扩展性和优雅的解决方案。我被赋予了这种结构,我应该以现在的方式“处理它”,并找到一种提取数据的方法。