迅速将国家名称转换为数字
15的观点(30天)
显示旧的评论
接受的答案
Kye泰勒
2012年4月6日
我猜你的表是一个n除以2单元阵列,其中第一列包含细胞的内容是每个国家的名称,第二列包含细胞相关的ISO代码。就像3×2单元阵列用命令创建的
国家= {“中国”;秘鲁的;“西班牙”};
代码=兰迪(10、长度(国家),1);
C =[国家,num2cell(代码)];
然后,我还以为你230个国家名字是真的在一个单元中创建的命令
listOfCountriesAsCell = {C{兰迪(3230 1),1}}';
或者,如果他们在一个矩阵(这意味着char数组吗?),你的国家类似于数组列表创建的命令
listOfCountriesAsString = char (listOfCountriesAsCell};
无论哪种方式,你可以转换命令
为c = 1:长度(国家)
idx = strcmpi (C {C, 1}, listOfCountriesAsCell);%
listOfCountriesAsCell (idx 1) = C (C, 2);%转换是在这里完成的
结束
或
为c = 1:长度(国家)
idx = strcmpi (C {C, 1}, cellstr (listOfCountriesAsString));%
listOfCountriesAsCell (idx 1) = C (C, 2);%转换是在这里完成的
结束
如果这些假设不正确,请添加更多的细节。
更多的答案(2)
Gautam Vallabha
2012年4月6日
首先,填充地图(假设你的换算表是Nx2单元阵列):
关联= containers.Map;
为i = 1:元素个数(conversionTable)
关联(conversiontable {1}) = conversiontable {2};
结束
然后,运行在你的国家名单和应用地图
为i = 1:元素个数(mylist)
countrycode (i) =关联(mylist{我});
结束