我需要通过字符串索引来访问数据,如表('one')%返回1。 MATLAB中有这样的数据结构吗?它是如何实现的?如何在MATLAB中使用哈希表(字典)?
32
A
回答
53
在最新版本的MATLAB中,有containers.Map
数据结构。有关更多信息,请参阅MATLAB Map containers。这在使用STRUCTs时删除了一些限制。例如
c = containers.Map
c('foo') = 1
c(' not a var name ') = 2
keys(c)
values(c)
17
的结构可以用作一种哈希表:
>> foo.('one')=1
foo =
one: 1
>> foo.('two')=2;
>> x = 'two';
>> foo.(x)
ans =
2
要查询的结构是否包含一个特定的字段(键)时,使用isfield
:
>> isfield(foo,'two')
ans =
1
这样做的缺点方案是只有那些也是有效的Matlab变量名称的字符串可以用作关键字。例如:
>> foo.('_bar')=99;
??? Invalid field name: '_bar'.
要解决此限制,请使用Oli链接问题中的某个解决方案。
+0
这种方法的另一个缺点是键的名字必须小于'namelengthmax'( 63)个字符 – rhombidodecahedron 2015-04-23 19:20:36
相关问题
- 1. 如何在matlab中使用坐标作为哈希键来构建哈希表?
- 2. 字典对哈希表
- 3. Bash扩展哈希表(字典)
- 4. 将哈希表更改为字典
- 5. 排序字典哈希
- 6. IronRuby哈希C#字典
- 7. 如何在powershell中的哈希表中添加哈希表?
- 8. 对象的哈希值如何存储在字典中?
- 9. 如何访问R中哈希env列表中的列表,如Python字典
- 10. 如何将Python字典转换为JavaScript哈希表?
- 11. 如何实现哈希表字典的构造函数Java
- 12. 如何在哈希中存储哈希哈希?
- 13. 哈希映射,哈希集合,哈希字典之间有什么区别?
- 14. 如何使用字典或哈希表的LINQ查询性能OData服务下
- 15. SQL哈希表字
- 16. 如何使用哈希表C#
- 17. Ruby哈希 - 如何在填充对象时使用哈希值?
- 18. 如何使用哈希
- 19. 如何在Java中“加入”哈希表?
- 20. 哈希表如何在WCF中工作?
- 21. 如何在Java中创建哈希表?
- 22. 如何在SQF中模拟哈希表?
- 23. 如何在c#中存储哈希表?
- 24. 在C中使用哈希#
- 25. 用户生成的嵌套字典(哈希值)在Ruby中
- 26. 使用哈希字符
- 27. 将redis哈希转换为python字典?
- 28. 哈希表中的搜索哈希
- 29. 使用哈希表的PowerShell
- 30. PowerShell的:使用哈希表
你在找什么是'Containers.Map'这个问题http://stackoverflow.com/questions/3591942/hash-tables-in-matlab – Oli 2012-03-24 07:57:41
完全相同的副本(也交叉http://www.mathworks.com/matlabcentral/answers/21130-dictionaries-of-hashtables-in-matlab) – 2012-03-24 10:45:54