matlab 重组容器贴图的关键点

eimct9ow  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(132)

通过使用for循环迭代,我在MATLAB上创建了一个容器Map,其关键字如下:

keys(tab) = 1x3 cell array
{'long_Kinn'} {'long_pro'} {'long_tal'}

我想知道是否有可能绕过按键的字母数字顺序,将它们重新组织为:?

keys(tab) = 1x3 cell array
{'long_pro'} {'long_tal'} {'long_Kinn'}

MatLab版本2020a

u2nhd7ah

u2nhd7ah1#

根据定义,Map是一个无序容器。如果顺序很重要,请使用数组,而不是Map。
例如,如果当前将这些键Map到值A、B和C,请按如下方式创建单元格阵列:

tab = {};
tab{:, end + 1} = {'long_pro'; A};
tab{:, end + 1} = {'long_tal'; B};
tab{:, end + 1} = {'long_Kinn'; C};

...当然你会在你的圈子里这么做现在,插入顺序被保留。
不建议追加到数组,但无论如何这都比添加到containers.Map快。选择上面的单元阵列的取向是为了使附加最有效。
如果需要使用单元格阵列进行查找,您可以执行以下操作:

value = tab{2, strcmp(tab(1,:), key)};

这不如在Map中查找,但只要容器中没有大量的密钥,它就可以很好地工作。
或者,考虑使用table对象,因为您似乎正在处理表格数据。

相关问题