Matlab 带结构场的mat2gray

Matlab 带结构场的mat2gray,matlab,image-processing,structure,Matlab,Image Processing,Structure,我试图用mat2gray和imshow将矩阵显示为图像。数据保存为结构的一部分。当我单独调用该字段时,我可以很好地显示图像,但是如果我尝试在for循环中执行该操作,它将不起作用。有人知道为什么会这样吗 例如: imshow(mat2gray(MyVals(5).Data)) 结果:成功 for L=1:numel(MyVals) imshow(mat2gray(MyVals(L).Data)) end 结果: 试图访问限制(2);索引超出范围,因为 努梅尔(极限)=0 如果限制(2

我试图用
mat2gray
imshow
将矩阵显示为图像。数据保存为结构的一部分。当我单独调用该字段时,我可以很好地显示图像,但是如果我尝试在
for
循环中执行该操作,它将不起作用。有人知道为什么会这样吗

例如:

imshow(mat2gray(MyVals(5).Data))
结果:成功

for L=1:numel(MyVals)
    imshow(mat2gray(MyVals(L).Data))
end 
结果:

试图访问限制(2);索引超出范围,因为 努梅尔(极限)=0

如果限制(2)=限制(1)%Constant Image,则mat2gray(第38行)中存在错误


请张贴错误。为什么会失败?如果您将
L=5
,则本质上是相同的语句。这是错误消息:尝试访问限制(2);索引超出范围,因为numel(限制)=0。mat2gray(第38行)中的错误,如果限制(2)=限制(1)%Constant Image//我知道它不是一个常量图像,因为我可以在不使用for循环的情况下显示图像//非常感谢您的帮助!查看
MyVals(5).data
MyVals(L).data
是否具有相同的格式,其中L是遇到错误时的值。预设L的范围有效!!(对于L=1:100,而不是1:numel(MyVals))。谢谢你的帮助!!但我还有第二个问题。如果没有在for循环中立即显示图像,则会收到相同的错误消息。你知道为什么会这样吗?是的!非常感谢您的这些提示和帮助@Parag!最后两个矩阵是空的数据集,因此产生了错误。