Counting occurrence of keys and values for Containers.Map in another Containers.Map
2 次查看(过去 30 天)
显示 更早的评论
How it is possible to count occurrence of keys and values of Containers.Map A in B?
A = containers.Map({1026,1033,1038,1042},...
{[605.914,48.521],[490.6086 23.7932],[257.558,67.625],[439.090,225.924]});
B = containers.Map({1025,1026,1028,1029,1031,1033,1035,1037,1038},...
{[397.494,168.066],[605.914,48.521],[295.712,176.770],[226.249,209.288],...
[52.573,278.126],[490.6086 23.7932],[50.747,213.198],[38.992,4.417],[257.558,67.625]});
Thank you!!
0 个评论
采纳的回答
J. Alex Lee
2020-8-18
Just considering the keys, you can use ismember (though I'm not sure why there's a limitation that cells must be cell arrays of character vectors, and can't be numbers..)
[mask] = ismember(cell2mat(B.keys),cell2mat(A.keys))
cnt = sum(mask)
[mask] = ismember(B.keys,A.keys)
If you need to check if values are the same, you can iterate through the matched keys and use isequal()
2 个评论
J. Alex Lee
2020-8-19
Yes, sorry should have clarified the last line doesn't work, but seems like a silly limitation by TMW to me. Glad it helps!
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Construct and Work with Object Arrays 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!