MATLAB: How to add values into Matlab matrix and not overwrite it

add values

I have to insert values from a for loop into the matrix, but the values are all the time getting overwritten, so only last values are added into the matrix. What is the way to add every value to the matrix inside a for loop without overwriting?
My code is this:
%reading the file
list = fopen('intervals.txt','r');
C=cell(size(list))
for k=1:length(list)
content = fgets(list(k))
d= strsplit(content,',')
for n=1:length(d) % d contains 25 elements
B = zeros(n,1); % preallocate, results output
y=d{n}
z= strsplit(y,' ')
start=z{1}
stop=z{2}
start1 = str2num(start)
stop1 = str2num(stop)
B = [start1,stop1] %write to the matrix
end

Best Answer

You're overwriting the contents of B twice in each iteration of your for loop:
B = zeros(n,1); % preallocate, results output

B = [start1,stop1] %write to the matrix

The size of B is also changing each iteration since n is increasing, which defeats the purpose of preallocating memory.
Start by preallocating outside of the for loop, using the final dimensions you think the matrix will have. Inside the for loop, assign elements to a row/column of B. I'm guessing from your code that you want B to be a 25x2 matrix, in which case the following should work:
L = length(d);
B = zeros(L,2); % preallocate, results output
for n=1:L % d contains 25 elements
y=d{n}
z= strsplit(y,' ')
start=z{1}
stop=z{2}
start1 = str2num(start)
stop1 = str2num(stop)
B(i,:) = [start1,stop1] %write to the matrix
end
(Also your for loop is missing an end)