MATLAB: Do I get Out of memory

Below is my code. Each matrix corresponding to mlinverse_1, mlinverse_2, mlinverse_3 ……mlinverse_19 is 7824 by 7824 matrix. My RAM size is 4GB…why am I getting the out of memory error..any solutions?
Y = importdata('mrMaterials_version2.txt');
linverse = importdata('L_inverse.txt');
X= Y.data;
mlinverse_1 = X(67,:);
mlinverse_1 = diag(mlinverse_1);
mlinverse_2 = X(68,:);
mlinverse_2 = diag(mlinverse_2);
mlinverse_3 = X(69,:);
mlinverse_3 = diag(mlinverse_3);
mlinverse_4 = X(70,:);
mlinverse_4 = diag(mlinverse_4);
mlinverse_5 = X(71,:);
mlinverse_5 = diag(mlinverse_5);
mlinverse_6 = X(72,:);
mlinverse_6 = diag(mlinverse_6);
mlinverse_7 = X(73,:);
mlinverse_7 = diag(mlinverse_7);
mlinverse_8 = X(74,:);
mlinverse_8 = diag(mlinverse_8);
mlinverse_9 = X(75,:);
mlinverse_9 = diag(mlinverse_9);
mlinverse_10 = X(76,:);
mlinverse_10 = diag(mlinverse_10);
mlinverse_11 = X(77,:);
mlinverse_11 = diag(mlinverse_11);
mlinverse_12 = X(78,:);
mlinverse_12 = diag(mlinverse_12);
mlinverse_13 = X(79,:);
mlinverse_13 = diag(mlinverse_13);
mlinverse_14 = X(80,:);
mlinverse_14 = diag(mlinverse_14);
mlinverse_15 = X(81,:);
mlinverse_15 = diag(mlinverse_15);
mlinverse_16 = X(82,:);
mlinverse_16 = diag(mlinverse_16);
mlinverse_17 = X(83,:);
mlinverse_17 = diag(mlinverse_17);
mlinverse_18 = X(84,:);
mlinverse_18 = diag(mlinverse_18);
mlinverse_19 = X(85,:);
mlinverse_19 = diag(mlinverse_19);
mlinverse = [mlinverse_1 mlinverse_2 mlinverse_3 mlinverse_4 mlinverse_5 mlinverse_6 mlinverse_7 mlinverse_8 mlinverse_9 mlinverse_10 mlinverse_11 mlinverse_12 mlinverse_13 mlinverse_14 mlinverse_15 mlinverse_16 mlinverse_17 mlinverse_18 mlinverse_19];

Best Answer

mlinverse_size = ((7824*7824)*8) *19
X_size = (85*7824)*8
total_size = mlinverse_size + X_size
total_size_as_gigabytes = total_size / 1024 / 1024 / 1024
mlinverse_size =
9304676352
X_size =
5320320
total_size =
9309996672
total_size_as_gigabytes =
8.67061007022858
Have you considered using spdiags() for your diagonal matrices?