你好我是第一次学习如何使用Matlab而且我被困在一项任务上。它是一个两部分的任务,第一部分是编写一个Matlab脚本并让它输出我已经完成的Excel文件。
M = {'City' 'Population'; 'Chandler' 249146; 'Gilbert' 229972;
'Glendale' 234632; 'Mesa' 457587; 'Peoria' 162592;
'Phoenix' 1513367; 'Scottsdale' 226918; 'Surprise' 123546;
'Tempe' 168228; 'Tucson' 526116};
M = xlswrite('largest_cities_in_arizona.xls',M)
第二部分是创建一个读取Excel文件的Matlab脚本,创建两个名为city_population和city_name的变量,然后根据总体按降序对它们进行排序。我发现了大部分问题。
[A, B] = xlsread('largest_cities_in_arizona.xls', 1, 'A2:B11');
city_population = sort(A, 'descend');
city_name = sort(B);
我遇到的问题是尝试通过city_population对city_name进行排序。导入数据时,Matlab将city_name视为10x1单元格,将city_population视为矩阵,如果我尝试根据city_population对B进行排序,则会给出尺寸错误。还有其他方法可以做到这一点吗?任何帮助或信息将不胜感激。
答案 0 :(得分:1)
试试这个:
[city_population, index] = sort(A, 'descend');
city_name = B(index);
关键是使用sort
的第二个输出作为索引,您应用于另一个数组以获得相同的顺序。
在你的例子中,这给出了
>> city_population
city_population =
1513367
526116
457587
249146
234632
229972
226918
168228
162592
123546
>> city_name
city_name =
'Phoenix'
'Tucson'
'Mesa'
'Chandler'
'Glendale'
'Gilbert'
'Scottsdale'
'Tempe'
'Peoria'
'Surprise'