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

求助:如何用Matlab直接创建3x5尺寸的所有二进制矩阵?

生成3x5所有二进制矩阵的Matlab高效方案

Matlab没有直接生成指定大小所有二进制矩阵的内置函数,但可以通过优化向量化操作大幅提升效率,避免耗时的循环操作:

核心步骤与代码

  1. 生成对应十进制数:0到2^15-1的整数,每个数对应唯一的15位二进制组合
  2. 批量转二进制矩阵:用内置函数dec2bin一次性完成所有二进制字符串到数值矩阵的转换
  3. 重塑为目标矩阵集合:通过reshape直接将二维二进制向量矩阵转为三维矩阵,第三维对应每个独立的3x5矩阵
% 生成所有0到2^15-1的整数(共32768个)
all_dec = 0:(2^15 - 1);

% 转换为15位二进制数值矩阵,每行对应一个二进制向量
all_bin = dec2bin(all_dec, 15) - '0';

% 重塑为3x5x32768的三维矩阵,第三维的每个切片就是一个3x5二进制矩阵
all_matrices = reshape(all_bin', 3, 5, []);

可选:转为Cell数组

如果需要将每个3x5矩阵单独存储为Cell元素,可使用mat2cell:

mat_cell = mat2cell(all_matrices, 3, 5, ones(1, size(all_matrices,3)));

效率说明

这个方法全程使用Matlab内置的向量化函数,dec2bin和reshape都是高度优化的底层实现,避免了手动循环的开销,比逐向量转换的方式快很多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:35:40