错误使用 containers.Map/subsasgn 指定的 key 类型与此容器所需的类型不匹配。 出错 huffman>traverse (line 54) codeMap(node.id) = code; 出错 huffman>huffcodes (line 49) traverse(huffTree, '', codeMap); 出错 huffman (line 11) codeMap = huffcodes(huffTree);
时间: 2024-02-18 10:06:30 浏览: 46
这个错误通常是由于键类型不匹配引起的。在这份代码中,可能是因为有些字符的频率为零,导致在codeMap中没有为它们分配键。尝试使用以下代码替换huffnode函数,并再次运行代码:
```
function node = huffnode(id, freq)
% 定义霍夫曼树节点
node.id = id;
node.freq = freq;
node.isleaf = true;
node.left = [];
node.right = [];
% 如果该节点的频率为0,则在codeMap中为其分配键
if freq == 0
node.id = 256;
end
end
```
相关问题
错误使用 containers.Map/subsasgn 指定的 key 类型与此容器所需的类型不匹配。
这个错误通常是由于使用了不匹配的数据类型作为键值导致的。在 MATLAB 中,`containers.Map` 容器的键值必须是可哈希的,因此只能使用数据类型为浮点数、整数、字符向量或逻辑向量作为键值。如果您尝试使用其他数据类型(如结构体或单元格数组)作为键值,则会出现此错误。
解决此错误的方法是使用与容器要求相匹配的键值类型。如果您需要使用非标量数据类型作为键值,则可以将其转换为标量类型或使用其他容器,例如 `cell` 数组或 `struct` 结构体。
error: containers.Map: specified key <.> does not exist
抱歉,MATLAB 中没有直接对应的容器类型来实现字典。您可以使用结构体来替代字典的功能。请尝试以下代码:
value = {};
for i = 1:length(floders)
floder = floders{i};
disp(floder);
imgname = strsplit(floder, '_');
imgname = imgname{1};
idx = tinydict.(imgname);
value{end+1} = idx;
value{end+1} = floder;
sum = 0;
imgs = dir(fullfile(floderPath, floder));
for j = 1:length(imgs)
img = imgs(j).name;
brisq.get_feature(fullfile(floderPath, floder, img));
score = brisq.get_score(fullfile(floderPath, floder, img));
disp(score);
sum = sum + score;
end
value{end+1} = sum/frames;
disp(sum/frames);
s = struct(value, df.columns);
df = [df; s];
value = {};
end
writetable(df, outpath);
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)