2011-05-20 139 views
0

previously posted如何显示和访问结构阵列内容上。该文件由国家,首都和人口组成。现在,我通过按字母顺序组织这些州来创建新结构方面遇到了麻烦。我这样做是由sortrows功能,我尝试配对了人口的价值观和首都与字母的状态,但我似乎无法得到它是一个数组。我希望它是一个数组,所以我可以将它写入一个文件。这是我迄今为止:如何基于MATLAB中的一个字段对结构数组进行排序?

fid=fopen('Regions_list.txt') 
    file=textscan(fid,'%s %s %f','delimiter',',') 
    State=file{1} 
    Capital=file{2} 
    Population=num2cell(file{3}) 

sortedStates=sortrows(State) 
    n=length(State) 

    regions=struct('State',State,... 
    'Capital',Capital,... 
    'Population',Population) 

for k=1:n; 
region=sortedStates(k); 
state_name={regions.State}; 
state_reference=strcmpi(state_name,region); 
state_info=regions(state_reference) 
end 

我希望我让自己清楚。

回答

0

使用this来排序读入的单元阵列(不需要转换),然后写入文件this

0

对于您的排序问题,该功能SORT将返回作为其第二个输出,可用于相同的排序顺序适用于其他阵列排序指标。例如,你可以整理你的阵列您创建结构数组

[sortedStates,sortIndex] = sort(State); 
regions = struct('State',sortedStates,... 
       'Capital',Capital(sortIndex),... 
       'Population',Population(sortIndex)); 

或者,你就能把自己的排序后您创建结构数组:

regions = struct('State',State,... 
       'Capital',Capital,... 
       'Population',Population); 
[~,sortIndex] = sort({regions.State}); 
regions = regions(sortIndex); 

不过,我当你说“我希望它是一个数组,因此我可以写入一个文件”时,m不确定你的意思。

相关问题