选择matlab结构

时间:2017-04-07 09:25:30

标签: matlab struct

我有一个包含以下字段的2x3 Matlab结构:

projectnameprojectcategoryprojectcost

这是一个贯穿结构内容的循环:

>> 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是否可以做到这一点,而不必求助于像数据库工具箱这样的大型(和昂贵的)数据库扩展。

1 个答案:

答案 0 :(得分:1)

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

<强>解释

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