我将C ++代码转换为Matlab。但是,我很难将地图转换为matlab语法。
使用map的c ++指令如下:
using kp_idx_t = size_t;
using img_idx_t = size_t;
std::map<kp_idx_t, std::map<img_idx_t, kp_idx_t>> kp_matches;
kp_idx_t& kp_match_idx(size_t kp_idx, size_t img_idx) { return kp_matches[kp_idx][img_idx]; };
bool kp_match_exist(size_t kp_idx, size_t img_idx) { return kp_matches[kp_idx].count(img_idx) > 0; };
如何将它们转换为matlab?
答案 0 :(得分:0)
在Matlab中没有任何东西直接等同于std::map
。所以我的答案是“如何将它们转换为Matlab?”是......这取决于你想要做什么。
我并不完全遵循您的代码或对您使用地图的内容有所了解,但如果您正在做这样的事情,那就是c ++:
std::map<char,int> first;
first['a']=10;
first['b']=30;
first['c']=50;
你可以在Matlab中使用一个结构:
first.a = 10;
first.b = 20;
first.c = 30;
然后你可以使用Matlab的动态字段名称来表示键。
myKey = 'a';
first.(myKey)
将返回10