2

正如标题所说,只是想知道是否有一个函数可以作为字段名(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)and fntemp = cell2struct(e,2),但我无法让它工作。

希望这是有道理的谢谢

4

1 回答 1

4

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

标量结构 适用于只有一个名称要引用的情况。

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

用于fieldnames(images)获取名称。

结构数组 更通用一点。允许完全通用名称(包括特殊字符和空格)和其他元数据(如“大小”、“作者”)

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更多。

于 2013-01-02T22:37:01.260 回答