如何从函数中的工作区迭代图像
Posted
技术标签:
【中文标题】如何从函数中的工作区迭代图像【英文标题】:How Can iterate Images from workspace in the function 【发布时间】:2021-11-01 06:18:28 【问题描述】:我在 .mat 文件中保存了 20 张图像,当我将这些图像加载到工作区时,我想在函数中对其进行迭代。这些图像有不同的名称和不同的大小。有人可以帮忙吗?
【问题讨论】:
我认为你的问题没有提供足够的信息来回答,但也许这个链接回答了你的问题***.com/questions/408080/… 您可以将evalin 用作here,但您不应该... 更好的解决方案:1. 将mat 文件的名称传递给您的函数。 2. load 将垫子转换为类似S = load('f.mat');
的结构。 3. 像C = struct2cell(S)
一样使用struct2cell 4. 迭代C
。 (您也可以迭代结构字段)。
请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
【参考方案1】:
加载您的文件。调用 Matlab 的“who(...)”函数,该函数列出文件中的变量名称。使用 Matlab 的“evalin(...)”函数将变量的内容存储到元胞数组中。
最终的元胞数组“images”包含您的所有图像数据,无论每个图像的大小如何。现在您可以根据需要迭代此元胞数组。
下面的代码应该可以解决问题。你只需要替换你的文件名。
load('your_images.mat')
image_vars = who('-file', 'your_images.mat');
N_images = numel(image_vars);
images = cell(N_images, 1);
for ii = 1:N_images
imagesii = evalin('base', image_varsii);
end
【讨论】:
以上是关于如何从函数中的工作区迭代图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使 jQuery 函数迭代从同一类中的 2 个列表中获取的单独数组?