Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 我对矩阵的预分配在MATLAB中给出了内存不足错误

我使用零来初始化矩阵,如下所示:

height = 352 width = 288 nFrames = 120 imgYuv=zeros([height,width,3,nFrames]); 但是,当我将nFrames的值设置为大于120时,MATLAB会给我一条错误消息,提示内存不足。

原始功能是

[imgYuv, S, A]= changeYuv(fileName, width, height, idxFrame, nFrames) 我的命令是

[imgYuv,S,A]=changeYuv('tilt.yuv',352,288,1:120,120); 谁能告诉我这是怎么回事?

PS:此功能的目的之一是加载包含2000帧以上的yuv视频。是否有可能实施?



回答:

避免错误的三种方法
  1. 在任何给定时间处理有限数量的帧。
  2. 使用整数数组。大多数电影都是8位格式,而Matlab通常使用doubles格式。 uint8每个元素占用1个字节,而double占用8个字节。因此,如果您以B = zeros(height,width,3,nFrames,'uint8 )`创建数组,则仅使用内存的1/8。这可能适用于120帧,但是对于2000帧,您将再次遇到麻烦。注意,并不是所有的Matlab函数都适用于整数数组。您可能需要重新实现那些需要加倍处理的功能。
  3. 购买更多RAM。

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 04:52


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.