选择Matlab结构的where type命令

选择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

我有一个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
type thing。我想看看Matlab是否可以做到这一点,而不必求助于大型(且昂贵)数据库扩展,如数据库工具箱

projectstructure(strcmp({projectstructure.projectname}, 'project3')).projectcategory
解释

  • {projectstructure.projectname}
    :创建包含所有项目名称的单元格数组
  • strcmp({projectstructure.projectname},'project3')
    :将所有名称与所需名称进行比较
  • projectstructure(strcmp({projectstructure.projectname},'project3'))
    :使用

我认为这是可能的,但您的措辞和变量有点不清楚。你能给出一个有期望输出的结果吗?