繁体   English   中英

非零元素命令与Matlab中的哈希表又称为哈希图?

[英]Nonzero elements command with hash tables aka hashmaps in Matlab?

我需要用Matlab hashmap / hash-tables找出非零元素的数量, nnz不能使用它。 例如, nnz(hhh.values)不起作用。 如何检查Matlab哈希图中的非零元素?

keys = {'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'};
values = {327.2, 368.2, 197.6, 178.4, 100.0,  69.9}
hhh = containers.Map(keys, values)
nnz(hhh.values)

回报

类型为“ cell”的输入参数的未定义函数“ nnz”。

好吧,这有点丑陋,但是如果您想要紧凑的东西,可以与nnz一起使用cellfun进行传导:

nnz(cellfun(@(x)x~=0,hhh.values))

或者你可以标量单元阵列转换成提供的这一切都是同一类的通过级联的向量,因为在这个例子中(见的情况下'UniformValues'的选项containers.Map ):

vals = hhh.values;
nnz([vals{:}])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM