Info
Questa domanda è chiusa. Riaprila per modificarla o per rispondere.
multiple text files into one in a for loop
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hi,
I am trying to join multiple text files into one. RIght now, in my code, I have IT number of datafiles but I would like to all combine into one with the rows following on from the previous iteration. The file needs to contain all the columns of data that are shown in the table P. Here is my code:
If anyone can help it would be great;y appreciated.
clc,clear
close all
for IT = 1:50
x1 = -15+30*rand(3,1);
x2 = -15+30*rand(3,1);
N = 2;
r_t = 7000*1000; %km
g_t = 9.8; %m/s2
r = r_t;
g = g_t;
tau_d = 300;
t = 1;
omega = sqrt(g/r);
% target positions
e1 = [1; 1; 0];
e2 = [0; 0; -1];
%parameters and unknowns
mu = 398600.5;
n = sqrt(mu/r_t^3);
b = 0.112;
k1 = 1;
d = 0.037;
k2 = 1;
norm_d = norm(e1-e2);
c = -d/norm_d * exp(-norm_d^2/k2) - b/norm_d*exp(-norm_d^2/k1);
lambda = [b, c, d, k1, k2];
v1_gf = gf_sat_1_vel2(x1, x2, e1, e2, lambda, omega, tau_d, t, N);
v2_gf = gf_sat_1_vel2(x1, x2, e1, e2, lambda, omega, tau_d, t, N);
v10 = [0; 0; 0];
v20 = [0; 0; 0];
y0 = [x1(1); x1(2); x1(3); v10(1); v10(2); v10(3); x2(1); x2(2); x2(3); v20(1); v20(2); v20(3)];
dt=1;
tspan = 0:dt:1000;
[t,y] = ode45(@(t,y)ClohesseyWiltshire(y, n, lambda, e1, e2, omega, tau_d, t, N),tspan, y0);
U1 = zeros(length(t),length(e1));
U2 = zeros(length(t),length(e2));
dv1 = 0;
dv2 = 0;
for i = 1 : length(t)
[u1, u2, vg1, vg2] = ClohesseyWiltshire_u(y(i,:), n, lambda, e1, e2, omega, tau_d, t(i), N);
U1(i, :) = u1;
U2(i, :) = u2;
VD1(i, :) = vg1;
VD2(i, :) = vg2;
U1_norm(i) = norm(u1);
U2_norm(i) = norm(u2);
v1_gf = gf_sat_1_vel2(x1, x2, e1, e2, lambda, omega, tau_d, t(i), N);
V1GF(i, :) = v1_gf;
v2_gf = gf_sat_2_vel2(x1, x2, e1, e2, lambda, omega, tau_d, t(i), N);
V2GF(i, :) = v2_gf;
if i ~= 1
dv1 = norm(u1) * (t(i) - t(i-1)) + dv1;
dv2 = norm(u2) * (t(i) - t(i-1)) + dv2;
end
end
DV = [dv1; dv2];
R1 = y(:,1:3);
R1 = R1';
V1 = y(:,4:6);
V1 = V1';
R2 = y(:,7:9);
R2 = R2';
V2 = y(:,10:12);
V2 = V2';
figure(1)
plot3(R1(1, :), R1(2, :), R1(3, :))
hold on
plot3(R2(1, :), R2(2, :), R2(3, :))
plot3(x1(1),x1(2),x1(3),'o')
plot3(e1(1),e1(2),e1(3),'x')
plot3(x2(1),x2(2),x2(3),'o')
plot3(e2(1),e2(2),e2(3),'x')
hold on
title('Trajectories of Two Satellite Configuration - Gravitational Field')
xlabel('X')
ylabel('Y')
zlabel('Z')
legend({'Satellite 1','Satellite 2'},'Location','Southwest')
V1 = V1';
V2 = V2';
R1 = R1';
R2 = R2';
U1_norm = U1_norm';
U2_norm = U2_norm';
tspan = tspan';
% Create columns of data
% Create a table with the data and variable names
P = table(t, U1, VD1, U2, VD2, V1, V2, R1, R2, V1GF, V2GF, 'VariableNames', {'t', 'U1', 'VD1', 'U2', 'VD2' 'V1', 'V2', 'R1', 'R2', 'V1GF', 'V2GF'});
% Write data to text file
name = ['Database2/',num2str(IT), 'Database.txt'];
writetable(P, name)
end
0 Commenti
Risposte (0)
Questa domanda è chiusa.
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!