## emptying each row of matrix of a in a loop then uses respective matrices produced from it to get a certain value

### JL (view profile)

on 22 Aug 2019 at 20:50
Latest activity Commented on by JL

### JL (view profile)

on 27 Aug 2019 at 15:52
Accepted Answer by Matt J

### Matt J (view profile)

I have a matrix, a
a = [1 2;
1 3;
1 5;
1 7;
1 8;];
and this matrix a, is emptied in each row per loop until the last one using this code from Matt J
a0=a;
for i=1:size(a,1)
a=a0;
a(i,:)=[],
end
which result in:
a = [1 3;
1 5;
1 7;
1 8;];
a = [1 2;
1 5;
1 7;
1 8;];
a = [1 2;
1 3;
1 7;
1 8;];
a = [1 2;
1 3;
1 5;
1 8;];
a = [1 2;
1 3;
1 5;
1 7;];
can I create another loop to calculate a certain value, w, from the results from each loop beginning with the orginal until the last one. After each loop answer value, w, is tabulated in matrix b
b = [w
w
w
w
w
w]
there 6 values of w since we consider the orginal a

Show 1 older comment
JL

### JL (view profile)

on 22 Aug 2019 at 21:07
Hi Ted, should i just include your code earlier here?
JL

### JL (view profile)

on 22 Aug 2019 at 21:23
for i=1:size(a,1)
a=a0;
a(i,:)=[],
% work with matrix a here
end
This code actually works but it doesnt save the values from this loop into another matrix
David Hill

### David Hill (view profile)

on 22 Aug 2019 at 21:36
preallowcating array b = zeros(size(a,1)-1,2,size(a,1));
and having the following in the loop
b(:,:,i)=a;

Answer by Matt J

### Matt J (view profile)

on 22 Aug 2019 at 21:44
Edited by Matt J

### Matt J (view profile)

on 22 Aug 2019 at 22:01

Why not as follows,
b=nan(size(a,1),1); %pre-allocate
for i=1:size(a,1)
tmp=a;
tmp(i,:)=[],
b(i)=max(tmp(:))-min(tmp(:)); %example derived quantity
end

JL

### JL (view profile)

on 22 Aug 2019 at 22:23
Hi Matt, yup it is not working for me. in fact, my matlab is going crazy.
for i=1:size(a,1)
a=a0;
a(i,:)=[],
% I PLACE CODE HERE TO CALCULATE Ws
end
This code above actually produces all the calculated values of w for each loop. But I need a code to put the values of w derived from each loop into a matrix, b.
b = [250; %from first loop
175; %from second loop
145; %from third loop
230; %from fourth loop
250; % from fifth loop
];
David Hill

### David Hill (view profile)

on 22 Aug 2019 at 22:44
best to pre-allowcate as Matt discribed. you could b=[]; outside loop and b=[b,w];inside loop. Matt's solution works best.
JL

### JL (view profile)

on 27 Aug 2019 at 15:52
Thank you!