使用 matfile 函数索引大矩阵会使 matlab 崩溃
Indexing big matrices with matfile function crashes matlab
% A,B,C,D,& E都是大小为(1500,1500,3500)的矩阵。
A = matfile('FileA.mat')
B = matfile('FileB.mat')
C = matfile('FileC.mat')
D = matfile('FileD.mat')
E = matfile('FileE.mat')
% 当我尝试 运行 时,以下代码 matlab 崩溃。我相信这是一个内存问题。
SimilarIndex = A.Matrix > 5 ...
& B.Matrix < 2 ...
& C.Matrix > 4 ...
& D.Matrix < 8 ...
& E.Matrix < 1 ;
% 有没有可行的方法在内存中索引这些矩阵?
% 感谢您的帮助。
一个大小为(1500*1500*3500)的矩阵包含7875000000个元素。如果我们假设矩阵元素是单精度浮点值,我们需要 7875000000*32 位或大约 30 GB 的内存来存储一个矩阵。甚至可以使用这种大小的一个矩阵,或者如果您有 64 GB 的内存(或更多),或者矩阵是 sparse。
% A,B,C,D,& E都是大小为(1500,1500,3500)的矩阵。
A = matfile('FileA.mat')
B = matfile('FileB.mat')
C = matfile('FileC.mat')
D = matfile('FileD.mat')
E = matfile('FileE.mat')
% 当我尝试 运行 时,以下代码 matlab 崩溃。我相信这是一个内存问题。
SimilarIndex = A.Matrix > 5 ...
& B.Matrix < 2 ...
& C.Matrix > 4 ...
& D.Matrix < 8 ...
& E.Matrix < 1 ;
% 有没有可行的方法在内存中索引这些矩阵?
% 感谢您的帮助。
一个大小为(1500*1500*3500)的矩阵包含7875000000个元素。如果我们假设矩阵元素是单精度浮点值,我们需要 7875000000*32 位或大约 30 GB 的内存来存储一个矩阵。甚至可以使用这种大小的一个矩阵,或者如果您有 64 GB 的内存(或更多),或者矩阵是 sparse。