MATLAB: For loop with a big matrix of 800 MB

for loopMATLABmatrix array

Hi all,
I am searching through a big matrix file ( nearly 850 MB) and tried to loop through that matrix but it take a massive amount of time. I wonder if are there any method to run a simple for loop in this "big data" matrix. My code is at belown
clearvars;
load('landorocean_250_W.mat')
tA_world = tall(A_world);
tx_world = tall(x_world);
ty_world = tall(y_world);
[m_1,n_1]=size(A_world);
for i=1:m_1
for j=1:n_1
if gather(tA_world(i,j) == -32768)
island_250m_1(i,j)=0;
else
island_250m_1(i,j)=1;
end
end
end
Thank you for your time,
Sincerely,

Best Answer

Using gather as you have done on each individual element of the tall array completely nullifies the advantage of tall arrays. You may as well not have used tall arrays, it would have been faster.
The loop was not needed in the first place:
island_250m_1 = tA_world == -32768; %creates a tall array the same size as tA_world
%now you can call gather if you want to convert that tall array into a concrete array
island_250m_1 = gather(island_250m_1);
Related Question