matlab - 在 matlab 代码中使用 for 循环时出现内存不足错误
问题描述
我有一个 1x46 不同长度的单元格。
我想将每个单元格补零到最大长度单元格,因为我想应用 cell2mat 函数并且为了应用它,我需要使这个单元格保持一致。
但是每当我运行我的代码时,它都会出现内存错误。
最大长度为 6691240,即最大长度单元格中有 6691240 个元素
代码如下
for i=1:numel(X1)
if size(X1{i}) < 6691240
X1{i}(end,6691240)=0;
end
end
解决方案
我理解的方式是每个单元格都是一个向量,每个这样的向量的长度需要为6691240。因此,代码需要更改为:
for i=1:length(X1)
if length(X1{i}) < 6691240
X1{i}(6691240)=0;
end
end
推荐阅读
- c - 为什么 scanf 被执行了 11 次?
- javascript - 为什么动态导入保留原点?
- java - 严重:无法在 Tomcat 7 && Java 8 中处理 Jar 条目 [module-info.class]
- android - 使用更大的矢量drawable而不重新定义它两次
- python - Python - 如何通过分页 API 循环提取数据(Harvest)
- excel - Excel,100% 堆积条形图,显示不正确?
- python - AttributeError:“列表”对象没有属性“set_model”
- javascript - 用地图反应本机循环
- django - 使用 django-filter 进行 DRF 注释查询集过滤
- python - 为提交按钮创建事件处理程序