选择Matlab结构的where type命令
我有一个2x3 Matlab结构,包含以下字段:选择Matlab结构的where type命令,matlab,struct,Matlab,Struct,我有一个2x3 Matlab结构,包含以下字段: projectname、projectcategory和projectcost 下面是一个循环,它遍历结构的内容: >> for i=1:3 projectstructure(i).projectname projectstructure(i).projectcategory projectstructure(i).projectcost end ans = project1 ans = category1
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
这类似于excelVLOOKUP
函数或MySQLSELECT FROM WHERE
type thing。我想看看Matlab是否可以做到这一点,而不必求助于大型(且昂贵)数据库扩展,如数据库工具箱
projectstructure(strcmp({projectstructure.projectname}, 'project3')).projectcategory
解释
:创建包含所有项目名称的单元格数组{projectstructure.projectname}
:将所有名称与所需名称进行比较strcmp({projectstructure.projectname},'project3')
:使用projectstructure(strcmp({projectstructure.projectname},'project3'))