我是靠谱客的博主 生动小蝴蝶,最近开发中收集的这篇文章主要介绍matlab中hash和map的用法总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

若要在matlab中使用hash,有两种方式:

1)采用matlab官方给出的结构类型mapcontainers.Map):

http://cn.mathworks.com/help/matlab/map-containers.html

2)调用Java中的hashmap或者hashtable

2.1hashtable的具体示例:

http://blog.csdn.net/chaosstar/article/details/8268602

 哈希表是一种很有用的数据结构,其可由关键字key)直接定位到数据值(value);在很多应用中,使用哈希表可以方便高效地达到目的。

       但哈希表并不是matlab内置数据类型,所以要在matlab中使用哈希表就比较麻烦了;幸好,matlab提供了一种调用Jave哈希表的方法,让我们可以间接的使用哈希表。

   废话少说,直接上代码:

-------------------------------------------------------------------

以下代码功能为:统计文本中单词出现的次数(包括数字,但不包括标点)

text ='In computing, a hash table (also hash map) is a datastructure used to implement an associative array, a structure that can map keysto values. A hash table uses a hash function to compute an index into an arrayof buckets, from which the correct value can be found.';

word_cell = regexp(text,'w+','match');使用正则表达式分割文本中的字符

word_ht = java.util.Hashtable;生成哈希表的对象

遍历文本单词cell,并统计单词出现次数

for ii =1: length(word_cell)

    lower_word = lower(word_cell{ii});转换为小写字符

    if word_ht.containsKey(lower_word)单词是否已在关键字列表中

        word_ht.put(lower_word, word_ht.get(lower_word)+1);使用 ht.put(key, value) 将单词及其出现次数保存到哈希表中

    else

        word_ht.put(lower_word,1);

    end

end

word_list = word_ht.keys;获取关键字列表

输出所有单词及其出现次数(并无排序)

while( word_list.hasNext )% word_list.hasNext为真说明下一个元素存在,否则已遍历到列表尾

    word = word_list.nextElement;获取下一个关键字

    fprintf('%s : %dn', word, word_ht.get(word)); 使用 ht.get(key) 可得到key对应的value,即 value = ht.get(key)

end

-------------------------------------------------------------------------------------------

2.2hashmap具体示例:

http://blog.chengsite.com/?p=345​

 

注意:

hashtablehashmapmap的区别还是有不少的,比如内存机制不同,对于较大规模数据,用hash效率更高。

参考:http://www.cnblogs.com/lidabo/archive/2013/08/12/3253045.html​


原文地址:http://blog.sina.com.cn/s/blog_4a0824490102vamk.html


最后

以上就是生动小蝴蝶为你收集整理的matlab中hash和map的用法总结的全部内容,希望文章能够帮你解决matlab中hash和map的用法总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部