求助:Matlab中向字典添加数组报错,提示维度不兼容或值需为标量
在Matlab中向字典添加数组的正确方法
你遇到的错误是因为Matlab的dictionary对象使用括号()赋值时,要求值为标量,或者与键的维度兼容。而你要存入的是多元素数组,直接用d('key') = arr不符合规则,所以报错。
有两种简单的解决方式:
方式一:使用setValue方法
d = dictionary; arr = [1 0.2 7 0.3]; d.setValue('key', arr);
方式二:使用大括号{}赋值
大括号索引是Matlab字典针对单个条目的操作方式,支持存入任意类型的非标量值:
d = dictionary; arr = [1 0.2 7 0.3]; d{'key'} = arr;
另外也可以在创建字典时直接初始化数组值:
d = dictionary('key', [1 0.2 7 0.3]);
补充说明:Matlab字典的()索引主要用于批量操作(比如一次性给多个键赋值),要求值的维度和键的数量对应;而{}索引是单个条目的操作入口,更适合存入数组这类非标量数据。
内容的提问来源于stack exchange,提问作者Chris Ze Third
相关产品推荐
相关产品推荐

