等效的Fieldnames函数用于单元格

时间:2013-01-02 22:23:23

标签: matlab cells field-names

正如标题所说,只是想知道是否有一个函数作为字段名(http://www.mathworks.co.uk/help/matlab/ref/fieldnames.html),但对于单元格。

所以,如果我有类似的东西:

a = imread('redsquare.bmp');
b = imread('bluesquare.bmp');
c = imread('yellowsquare.bmp');
d = imread('greysquare.bmp');

e = {a, b, c, d};

我正在尝试检索:a,b,c,d或没有扩展名的图像名称。

我已尝试过fn = fileparts(e)fntemp = cell2struct(e,2),但我无法让它发挥作用。

希望这是有道理的 感谢

1 个答案:

答案 0 :(得分:4)

单元格数组不包含任何元信息,如字段名称或文件名。如果要访问该信息,则需要更改数据存储结构。一些选项包括:

标量结构 当有一个名称可以参考时很好。

images.red = imread('redsquare.bmp');
images.blue = imread('bluesquare.bmp');

使用fieldnames(images)获取名称。

结构数组 更一般的一点。允许使用完整的通用名称(包括特殊字符和空格)和其他元数据(如“size”,“author”)

images(1).name = 'red';
images(1).im   = imread('redsquare.bmp');
images(2).name = 'blue';
images(3).im   = imread('bluesquare.bmp');

使用{fieldnames.name}获取名称。

<强> Containers.map 可能比你需要的更多,但很高兴知道。 help comtainers.map了解更多信息。