2017-10-12 56 views
-2

我正在將C++代碼轉換爲Matlab。不過,我在將地圖轉換爲matlab語法時遇到困難。從C++ map容器到matlab

使用地圖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

https://www.mathworks.com/help/matlab/ref/containers.map-class.html –

回答

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