怎么修改以下错误使用 dec2bin 请求的 1073741824x30 (60.0GB)数组超过预设的最大数组大小(13.9GB)。这可能会导致 MATLAB 无响应。 出错 compareFun (第 68 行) p = dec2bin(0:2^l-1) - '0';
时间: 2024-04-08 07:34:57 浏览: 140
解决数组定义太大无法运行问题
5星 · 资源好评率100%
要决这个问题,你可以尝试使用其他来生成二进制矩阵,而不是直接使用`dec2bin`函数。以下是一个可能的解决方案:
```matlab
n = 2^; % 矩阵的行数
m = l; % 矩阵的列数
% 创建一个空的矩阵
p = zeros(n, m);
% 使用循环填充矩阵
for i = 1:n
num = i - 1;
for j = m:-1:1
p(i, j = fix(mod(num, 2));
num = fix(num / 2);
end
end
```
这段代码使用循环逐个计算每个二进制数,并将其填充到矩阵中。这种方法避免了一次性创建一个巨大的数组,因此可以避免超过MATLAB的最大数组大小限制。
请注意,这样生成的矩阵`p`与使用`dec2bin`生成的矩阵是等价的。希望这可以解决你的问题!
阅读全文