我有一个包含以下字段的2x3 Matlab结构:
projectname
,projectcategory
和projectcost
。
这是一个贯穿结构内容的循环:
>> for i=1:3
projectstructure(i).projectname
projectstructure(i).projectcategory
projectstructure(i).projectcost
end
ans =
project1
ans =
category1
ans =
50000
ans =
project2
ans =
category2
ans =
25000
ans =
project3
ans =
category1
ans =
65000
>>
我想看看,在Matlab中,是否有一种基于projectname
字段“查询”此结构的有效方法。即是否有一种编程方式可以为projectcategory
提取projectname3
字段值。
这类似于excel VLOOKUP
函数或MySQL SELECT FROM WHERE
类型的东西。我想看看Matlab是否可以做到这一点,而不必求助于像数据库工具箱这样的大型(和昂贵的)数据库扩展。
答案 0 :(得分:1)
projectstructure(strcmp({projectstructure.projectname}, 'project3')).projectcategory
<强>解释强>
{projectstructure.projectname}
:创建所有项目名称的单元格数组strcmp({projectstructure.projectname}, 'project3')
:将所有名称与所需名称进行比较projectstructure(strcmp({projectstructure.projectname}, 'project3'))
:使用logical indexing