# Memory issues with large size matrices

We are working on a problem that requires solving of a SDP. While creating matrices of larger size(1990x 1990) we are facing memory related problems. Following are the details:

We are using following code for solving the above problem:

[rows,cols] = size(file);

y = randi([0 1],cols,cols);
sum1 = 0;
sum2 = 0;

cvx_begin sdp
variable M(rows,rows) symmetric;
M == semidefinite(rows);

for i = 1:cols
tic
x = file(:,i);
for k = 1:cols
z = file(:,k);
r = x-z;
sum1 = sum1 + (1-y(i,k)) * sqrt(r' * M * r);
sum2 = sum2 + y(i,k) * (r' * M * r);
end
toc
end
maximize(sum1);
subject to
sum2 <= 1

cvx_end

xlswrite(‘learn_M.xlsx’,M);

Working instace: While defining M of size (5x5) the CVX module mentioned above works perfectly and returns required results.

Non-working instace: Our need is to have M of size(1990x1990). While running the module as above we get follwing error message:
Error using sparse
Sparse matrix sizes must be non-negative integers less than MAXSIZE as defined by COMPUTER. Use HELP COMPUTER for
more details.

Error in cvx_reshape (line 41)
x = sparse( ii, jj, x, s( 1 ), s( 2 ) );

Error in * (line 199)
z2 = cvx_reshape( z2, [ nA * sy( 2 ), sy( 1 ) ], [], t1 );

Error in learning_m1 (line 28)
sum1 = sum1 + (1-y(i,k)) * sqrt(r’ * M * r);

Would appreciate some insights in this issue.

Thnak you

I’m afraid it is unlikely we can help you here. We’re at the mercy of MATLAB, and if their sparse matrix operations run out of memory, there’s nothing we can do.