필터 지우기
필터 지우기

How can I minimise the memory usage of the cat function

조회 수: 1 (최근 30일)
James Anderson
James Anderson 2013년 5월 21일
I have two very large data sets that I would like to concatenate using the CAT function. For example
A = rand(10000,10000);
B = rand(10000,10000);
C = cat(3,A,B);
Clear A B
My issue is around memory, the code above requires double the memory. Does anyone know a way that I can concatenate without using more memory? My inclination is to look at copy on write, and handle classes, but it is not clear to me if this would work? Thanks!

답변 (2개)

Iain
Iain 2013년 5월 21일
Why not just create C to start with?
C = rand(10000,10000,2); ?
NB, C requires 1.4Gb of RAM. I suggest you avoid such big variables unless you have good reason.

James Anderson
James Anderson 2013년 5월 22일
Hi Iain, thanks for your suggestion. However I have shown a simplified example for a very complicated piece of code. It does not appear at the moment that I can create the concatenated matrix from the start. This is mainly because I would have to pre-allocate the data, and then my memory headroom would be limited for the interim calculations.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by