从c ++ map容器到matlab

时间:2017-10-12 17:42:45

标签: c++ matlab

我将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?

1 个答案:

答案 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