Tags: becomes, dear, file, following, integer, integrating, keeping, matlab, matrix, output, pde, problemi, programming, record, save, solution, whenever
save matrix on output file
I have the following problem:
I am integrating a PDE and I am keeping record of my solution, say v(N), whe
never t becomes integer (N is the number of spatial grid points).
The result of this is a matrix, say plotdata(i,N), whose rows are the variou
s vectors v(N) recorded at increasing values of the counter i (which runs on
Now, if I keep plotdata(i,:) in memory and I just use the command 'save' at
the end of the loop, what happens is that if N is large enough I exceed the
In any case, even if I do not go beyond the memory limit, it produces a dram
atic increase of running time of the code.
I have tried to use 'append' in order to save
plotdata(i,:) at any time the counter 'i' is updated and the clear plotdata
from memory, but the result of this is that plotdata(i+1,:) is going to be w
ritten over plotdata(i,N) and so the only array plotdata(i+1,:) remains writ
ten in the output file.
I know that I need to use fopen, fwrite, fclose but I am becoming crazy with
the various formats and precision...
Could you be so kind to help me to write these few lines of my code?
At the beginning of my code I have set 'format long'.
The result I would like to obtain is an output .mat file where the whole mat
rix plotdata(i,:) is written together with the other quantities I need to sa
ve in the .mat file.
If it can be helpful, here it is the part of the code with the loop:
nonlin = v.^3;
v = T1\(T2*v - nonlin*dt);
udat = [udat; v(round(3*N/4))];
vdat = [vdat; v(round(N/2))];
wdat = [wdat; v(round(N/4))];
xdat = [xdat; norm(v,2)];
%save ('/home/amsta/fsarnari/hopf/B.mat', 'plotdata(i+1,:)') -append
%save ('B.mat', '-append', 'plotdata')
%save ('B.mat', 'plotdata')
[r_bc_r,r_bc_l]=check_BC(beta, gamma, L, P, v, N);
Thanks very much to whom will help me on this.
Leave a comment...
- 0 Comments