Reshaping is causing memory problem

4 ビュー (過去 30 日間)
Saddam N Y
Saddam N Y 2024 年 2 月 5 日
コメント済み: Saddam N Y 2024 年 2 月 6 日
Hello everyone,
I have 500 matrices of huge size of 40834 x 40834 and I would like to load them from mat files and then flatten them using the reshape function and later do some other things. However in the first flatteing operation I am getting a memory issue and Matlab aborts. How one could solve such a problem ? The code is below, here all Ki.mat are sparse matrices. Thank you.
i=1;
K_matrix_file = strcat('Matrices/K',num2str(i),'.mat');
load(K_matrix_file);
K_flatten = reshape(K_i,1,[]);
Saddam
  3 件のコメント
Matt J
Matt J 2024 年 2 月 5 日
編集済み: Matt J 2024 年 2 月 5 日
Are the matrices in sparse format? If they are in non-sparse format and they loaded sucessfully, there's no reason the reshape operation should have breached memory limits, unless the matrix consumes most of your RAM.
Saddam N Y
Saddam N Y 2024 年 2 月 5 日
Sorry I updated the question to include the piece of code that produces the issue. The matrices are all in the sparse format.

サインインしてコメントする。

採用された回答

Matt J
Matt J 2024 年 2 月 5 日
編集済み: Matt J 2024 年 2 月 5 日
Don't make long sparse row vectors, as these do consume lots of memory. Work with column vectors instead:
K_flatten = K_i(:);
  2 件のコメント
Walter Roberson
Walter Roberson 2024 年 2 月 5 日
t0 = spalloc(1,0,2);
t1 = spalloc(1,100,2);
t2 = spalloc(1,101,2);
whos t0 t1 t2
Name Size Bytes Class Attributes t0 1x0 40 double sparse t1 1x100 840 double sparse t2 1x101 848 double sparse
t1(1,100) = 1;
t2(1,100) = 1;
whos t1 t2
Name Size Bytes Class Attributes t1 1x100 840 double sparse t2 1x101 848 double sparse
t1(1,50) = 2;
t2(1,50) = 2;
whos t1 t2
Name Size Bytes Class Attributes t1 1x100 840 double sparse t2 1x101 848 double sparse
In short, a sparse row vector takes 8 bytes plus 8 bytes per column plus 16 bytes per non-zero.
This is a more than the equivalent non-sparse row vector, which would take 8 bytes per column.
Saddam N Y
Saddam N Y 2024 年 2 月 6 日
Thank you very much for your answer !!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by