You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB 2023a中创建以数组为键的字典?

MATLAB 2023a中数组作为字典键的正确用法

MATLAB 2023a支持将数组作为字典的键,你遇到的意外行为是因为传递键的方式错误,导致数组被拆解成了单个元素。

问题原因

直接将[1,0]这类数组作为dictionary的参数时,MATLAB会把数组展开为多个独立的键。比如dictionary([1,0], "south")会被解析为键1和0对应同一个值south,后续的数组参数也会被同样拆解,最终出现键被覆盖的结果。

正确实现方式

要将数组作为单个键传递,需要把每个数组键包装成单元格数组的元素,或者使用键值对数组构造字典:

方法1:单元格数组传递键值

orientation_dict = dictionary({[1, 0], [-1, 0], [0, 1], [0, -1]}, ...
    {"south", "north", "east", "west"});

方法2:键值对数组构造

kvPairs = [
    {[1, 0], "south"};
    {[-1, 0], "north"};
    {[0, 1], "east"};
    {[0, -1], "west"}
];
orientation_dict = dictionary(kvPairs);

验证结果

运行上述代码后,字典的输出会和你期望的一致:

orientation_dict = 

  dictionary (1x2 double ⟼ string) with 4 entries:

    [1, 0]  ⟼ "south"
    [-1, 0] ⟼ "north"
    [0, 1]  ⟼ "east"
    [0, -1] ⟼ "west"

注意事项

作为字典键的数组必须保证维度完全一致(比如都是1x2的double数组),不同维度的数组会被视为不同类型的键,导致MATLAB报错。

内容的提问来源于stack exchange,提问作者TriforceFiction

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:52:28