Что касается вашей проблемы с сортировкой, функция 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);
Однако я не уверен, что вы имеете в виду, когда говорите «Я хочу, чтобы это был массив, чтобы я мог записывать в файл».