Output data to text file
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Tyler Bodnarik
am 28 Sep. 2021
Beantwortet: William Rose
am 28 Sep. 2021
I have this code
H = 1;
h = 15;
l = 500;
g = 9.81;
n1 = 1;
n2 = 2;
n3 = 3;
L1 = (2*l)/n1;
L2 = (2*l)/n2;
L3 = (2*l)/n3;
T1 = (2*l)/(n1*sqrt(g*h));
T2 = (2*l)/(n2*sqrt(g*h));
T3 = (2*l)/(n3*sqrt(g*h));
t = 0;
x = 0:10:l;
k1 = (2*pi)/L1;
k2 = (2*pi)/L2;
k3 = (2*pi)/L3;
sigma1 = sqrt(g*k1*tanh(k1*h));
sigma2 = sqrt(g*k2*tanh(k2*h));
sigma3 = sqrt(g*k3*tanh(k3*h));
eta1 = (H/2)*cos(k1*x)*cos(sigma1*t);
eta2 = (H/2)*cos(k2*x)*cos(sigma2*t);
eta3 = (H/2)*cos(k3*x)*cos(sigma3*t);
figure
hold on
subplot(3,1,1);
plot(x,eta1)
title('n = 1');
subplot(3,1,2);
plot(x,eta2)
title('n = 2')
subplot(3,1,3);
plot(x,eta3)
title('n = 3');
I need to output the data into 3 text files with 2 columns where x = 1,2,3 for three modes respectfully. (n =1,2,3 are modes). How would I go about this?
Akzeptierte Antwort
William Rose
am 28 Sep. 2021
On Matlab 2021, use writetable() or dlmwrite(). See help for each.
On Matlab 2018, use dlmwrite(), since writetable() was not yet in Matlab.
Use Matlab's aray capability to shorten your code.
I recommend that you rename variable l to xmax, since l and the numeral 1 look so similar in the Courier font used by Matlab.
Here is code that uses Matlab's array capability and creates the three files you requested.
H = 1;
h = 15;
xmax = 500;
g = 9.81;
n=1:3; %1x3 array
L=2*xmax./n; %1x3 array
T=2*xmax./(n*sqrt(g*h)); %1x3 array
t = 0;
x = 0:10:xmax; %1x51 array
k=2*pi./L; %1x3 array
sigma = sqrt(g*k.*tanh(k*h)); %1x3 array
eta=H/2*cos(k'*x).*cos(sigma'*t); %3x51 array
figure
for i=1:3
subplot(3,1,i);
plot(x,eta(i,:))
titlestr=sprintf('n=%d',i);
title(titlestr);
filename=sprintf('dataout%d.txt',i);
dlmwrite(filename,[x',eta(i,:)']);
end
Good luck with your work.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Text Files finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!