0

以前、構造体配列のコンテンツを表示およびアクセスする方法について投稿しましたファイルは、州、首都、および人口で構成されていました。現在、これらの州をアルファベット順に整理して新しい構造を作成するのに苦労しています。関数でこれを行いsortrows、人口の値と首都をアルファベット順の州と組み合わせてみましたが、それを配列にすることはできません。ファイルに書き込めるように配列にしたい。これは私がこれまでに持っているものです:

    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

私は自分自身を明確にしていることを願っています。

4

2 に答える 2

0

これを使用して、読み込まれたセル配列を並べ替えて(変換は不要)、これを使用してファイルに書き込みます

于 2011-05-22T04:59:37.880 に答える
0

並べ替えの問題に関して、関数SORTは 2 番目の出力として、同じ並べ替え順序を他の配列に適用するために使用できる並べ替えインデックスを返します。たとえば、構造体配列を作成する前に配列を並べ替えることができます。

[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);

しかし、「ファイルに書き込めるように配列にしたい」というのは何を言っているのかよくわかりません。

于 2011-05-23T14:09:38.100 に答える