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

如何在MATLAB中将整数矩阵转换为无符号二进制值矩阵?

MATLAB整数矩阵转8位二进制字符串矩阵的解决方法

你遇到的问题是因为int2bit函数的设计目的是提取整数的每一位作为单独的数值元素,所以100×100的矩阵会被拆分为800×100的矩阵(每个整数的8位分别占据一行)。要得到每个元素对应8位二进制字符串的矩阵,可以用以下几种方法:

方法1:使用arrayfun结合string类型

% 假设I是你的100×100正整数矩阵
matBin = string(arrayfun(@(x) dec2bin(x, 8), I, 'UniformOutput', false));
  • dec2bin(x,8)将单个整数x转换为8位二进制字符串,自动补前导零
  • arrayfun对矩阵I的每个元素应用该函数,UniformOutput设为false生成字符串数组
  • string将结果转换为100×100的字符串矩阵,每个元素为8位二进制串

验证示例:当I = [1,2;1,2]时,matBin的输出为:

"00000001"    "00000010"
"00000001"    "00000010"

方法2:向量化处理(效率更高)

如果矩阵规模较大,向量化操作比arrayfun更高效:

vec = I(:); % 将矩阵转为列向量
binStrs = dec2bin(vec, 8); % 批量转换为8位二进制字符串
matBin = reshape(string(binStrs), size(I)); % 重塑为原矩阵大小的字符串矩阵

方法3:生成cell数组

如果需要每个元素为独立的char字符串,可以用cell数组:

matBin = arrayfun(@(x) dec2bin(x, 8), I, 'UniformOutput', false);

得到的是100×100的cell数组,每个cell存储一个8位二进制字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:40:50