# Tabulate data from the mathlab program

1. Oct 14, 2013

### iwan89

I need to tabulate the data for u(x,t) vs x. Someone help me please :(
this is the program.

L = 1.;
T = 1.;
maxk = 2500;
dt = T/maxk;
n=50;
dx = L/n;
cond = 1/4;
b = 2.*cond*dt/(dx*dx);
for i= 1:n+1
x(i) = (i-1)*dx;
u(i,1) = sin(pi*x(i));
end
for k=1:maxk+1
u(1,k) = 0.;
u(n+1,k)=0.;
time(k) = (k-1)*dt;
end
for k=1:maxk
for i=2:n;
u(i,k+1)=u(i,k)+0.5*b*(u(i-1,k)+u(i+1,k)-2.*u(i,k));
end
end
figure (1)
plot (x,u(:,1),'-',x,u(:,100),'-',x,u(:,300),'-',x,u(:,600),'-')
title ('Temperature within the explicit method')
xlabel ('X')
ylabel ('Y')
figure (2)
mesh (x,time,u')
title ('Temperature within the explicit method')
xlabel ('X')
ylabel ('Temperature')

2. Oct 14, 2013

### Staff: Mentor

What do you mean? Do you need to print the data in a table? If so, how many columns? What should the table look like?

BTW, this is not the section for HW problems. I am moving this post back to where your other one is.

3. Oct 14, 2013

### iwan89

yes i want to print the data and put it inside the table. two colomn which represent the graph

4. Oct 14, 2013

### Staff: Mentor

5. Oct 14, 2013

### iwan89

Im in total lost :( can you help me to modify my program so that it can create a table? :(

6. Oct 14, 2013

### Staff: Mentor

Something like this. I don't know if this is exactly what you need, but it's probably close.
Code (Text):

formatSpec = "%4.2f \t %4.2f \n";
for k=1:maxk
for i=2:n;
u(i,k+1)=u(i,k)+0.5*b*(u(i-1,k)+u(i+1,k)-2.*u(i,k));
fprintf(formatSpec, x(i), u(i, k + 1))
end
end

7. Oct 14, 2013

### iwan89

what is %4.2f \t %4.2f \n meant?

8. Oct 14, 2013

### Staff: Mentor

%4.2f is a format specifier - print a number in a field of width 4, with 2 places to the right of the decimal point. If you have numbers that take up more space, change the 4 to something bigger. If you want more places to the right of the decimal, change the 2 to something bigger.

\t is a tab character
\n is a newline character.