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

如何在MATLAB中将数组存入同一数据结构的不同大小分箱?

解决MATLAB中不同长度分箱的存储问题

这个问题我太熟悉了!MATLAB里的普通数值矩阵要求每一列的元素个数必须完全一致,所以你直接尝试用bin(:,3)赋值34个元素时,肯定会因为维度不匹配报错——毕竟前两列只有33个元素,矩阵结构不允许这种“参差不齐”的情况。

不过不用慌,我们可以用cell数组来解决这个问题,它专门用来存储不同维度、甚至不同类型的数据,完全符合你不想用额外变量的需求,具体操作如下:

x = 1:100;
% 初始化cell数组,直接赋值每个分箱的元素
bin{1} = x(1:33);
bin{2} = x(34:66);
bin{3} = x(67:100);

这样操作后:

  • bin{1} 就是你要的第一分箱(33个元素)
  • bin{2} 是第二分箱(33个元素)
  • bin{3} 是第三分箱(34个元素)

如果你想快速查看每个分箱的元素个数,可以用这个命令:

cellfun(@length, bin)

执行后会返回 [33, 33, 34],完美符合你的分箱要求。

要是你更喜欢用带命名的结构,也可以用MATLAB的结构体:

bin.box1 = x(1:33);
bin.box2 = x(34:66);
bin.box3 = x(67:100);

访问时就用bin.box3来获取最后34个元素,但对于这种按序号分的场景,cell数组会更简洁直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 12:32:32