我正在開發一個MatLab程序,將雙打映射爲雙打。地圖工作正常。然而,當我去從地圖這樣的檢索值:從地圖中檢索值時出錯
number1 = map(i); % i is a double
它給我的錯誤:
Specified key type does not match the type expected for this container.
爲什麼給我這個錯誤?請注意,這不是重複的,因爲我遇到的所有其他問題都是關於將信息放入Map
中,而不是將其取出。跨網絡的問題也出現這種情況,我還沒有看到一個涉及從地圖上撤回價值的問題。我的完整代碼如下:
C = [];
D = [];
E = [];
F = [];
G = [];
H = [];
numbers = 10;
powers = 10;
format longG
for i = 1:numbers
for j = 3:powers
C = [C;i^j];
G = [G;i^j];
end
C = transpose(C);
D = [D;C];
C = [];
G = transpose(G);
H = [H;G];
G = [];
end
map = containers.Map(D,H)
[~,b] = unique(D(:,1)); % indices to unique values in first column of D
D(b,:); % values at these rows
for i = D
number1 = map(i);
for a = D
number2 = map(a);
if gcd(number1,number2) == 1
E = [E;i+a];
end
end
E = transpose(E);
F = [F;E];
E = [];
end
那我怎麼添加值呢? – hichris123
@ hichris123增加了一些例子。 – Marcin
我剛剛意識到,它之前給我這個地圖的輸出,'計數:64 KeyType:double ValueType:double'。這是不是說它已經是一張雙倍的雙重地圖? – hichris123