# How to store data of FOR LOOP iteration?

5 views (last 30 days)
Nima on 27 Oct 2020
Commented: Sudhakar Shinde on 27 Oct 2020
In the following code i want all the data of each iteration to be stored in P_new, and also B_xq, B_xq , B_xq repectively, but what i get is only the last one. What needs to be changed in my code?
k = convhull(data_coord);
for i = 1:length(k)
v1_x = x_data(k(i,1));
v1_y = y_data(k(i,1));
v1_z = z_data(k(i,1));
v2_x = x_data(k(i,2));
v2_y = y_data(k(i,2));
v2_z = z_data(k(i,2));
v3_x = x_data(k(i,3));
v3_y = y_data(k(i,3));
v3_z = z_data(k(i,3));
p1 = [v1_x v1_y v1_z];
p2 = [v2_x v2_y v2_z];
p3 = [v3_x v3_y v3_z];
ps = [p1; p2; p3];
p12 = p2-p1;
p23 = p3-p2;
P = [p12; p23];
q = sqrt(rand(5, 1));
q = [q q.*rand(5, 1)];
P_new = q*P+p1;
F_Bx = scatteredInterpolant(data_coord, B_x,'nearest');
B_xq = F_Bx(P_new(:,1),P_new(:,2),P_new(:,3));
F_By = scatteredInterpolant(data_coord, B_y,'nearest');
B_yq = F_By(P_new(:,1),P_new(:,2),P_new(:,3));
F_Bz = scatteredInterpolant(data_coord, B_z,'nearest');
B_zq = F_Bz(P_new(:,1),P_new(:,2),P_new(:,3));
end
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

Sudhakar Shinde on 27 Oct 2020
You can use P_new(i) or P_new{i} to store loop result.
##### 6 CommentsShowHide 5 older comments
Sudhakar Shinde on 27 Oct 2020
P_new is required for calculations, so use below syntax to store outcomes:
B_xq(:,i)
B_yq(:,i)
B_zq(:,i)
As above final outcome is your area of interest P_new need not to be saved in loop and use as it is written now.

Sign in to comment.

### Categories

Find more on Matrices and Arrays in Help Center and File Exchange

R2020a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!