Matlab:从字段名称混合大写的结构中获取价值

Matlab: get value from a struct with mixed capitalization of field names

我有一个包含大约数千个字段名称和相应值的结构。字段名称大小写混合,但就名称而言是唯一的。我需要查找值。我知道要查找值的字段名称,但不知道字母的确切大小写。

示例代码是:

A = struct();
A.cat = 14;
A.Dog = 11;
A.COw = 13;

如何查看结构 A 中 cow 的值?

谢谢

您可以像这样创建不区分大小写的版本getfield

function value = getfieldi(S,field)
    names   = fieldnames(S);
    isField = strcmpi(field,names);  

    if any(isField)
      value = S.(names{isField});
    else
      value = [];
    end
end