Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.



Re: xls file in matlab
Posted:
Jul 15, 2013 5:07 AM


"Steven_Lord" <slord@mathworks.com> wrote in message <krejc3$hca$1@newscl01ah.mathworks.com>... > > > "george veropoulos" <veropgr@yahoo.gr> wrote in message > news:krdsv9$m8a$1@newscl01ah.mathworks.com... > > Dear friend > > i run the following code in matlab > > > > > > spin=1/2; > > r_parallel=10; > > theta=0; > > n=1; > > l=0; > > yi=1; > > B=ones(size(10000)); > > As TideMan pointed out, this creates a 1by1 B containing the value 1. But > there's another problem: > > > Enl=ones(size(10000)); > > wave_function=ones(size(10000)); > > for i=0:5 > > I recommend NOT using either i or j for your loop variable. > > http://www.mathworks.com/help/matlab/ref/i.html > http://www.mathworks.com/help/matlab/ref/j.html > > > B=i; > > This overwrites the entire contents of B with the scalar (1by1) value of > the loop variable. Thus even if you made B be 10000by1: > > B = ones(10000, 1); > > This line will make it 1by1. To make B be a 10000by1matrix each of whose > elements is the loop variable, use one of these two lines in the loop: > > B = i*ones(10000, 1); > B = repmat(i, 10000, 1); > > > [wave_function,Enl]=psi_parallel(r_parallel,theta,n,l,spin,yi,B); > > > > xlswrite('results.xlsx', B,'sheet1','A') > > xlswrite('results.xlsx',Enl,'sheet1','B') > > end > > > > > > the problem is that in xls(RESULTS) file i have ONLY one value for > > B=5 NOT ALL THE VALUES .(i=0,1,3,5 ) > > Each call to XLSWRITE overwrites the same elements in the sheet sheet1 of > results.xlsx. Rather than write scalar values to the sheet once per loop, > accumulate the results in an array and write the array to the Excel file > after the loop is complete. > > > % Yes, I know there's a better way to do this. > % This is for demonstration purposes only > z = zeros(10, 1); > for k = 1:10 > z(k) = k.^2; > end > > xlswrite('results_example.xlsx', z, 'sheet1', 'A') > > Plus your description skipped over 2 and 4. Those loop iterations do run and > XLSWRITE will be called during those iterations. > >  > Steve Lord > slord@mathworks.com > To contact Technical Support use the Contact Us link on > http://www.mathworks.com
Thank you four your answers
A last question Q there a matlab code for solving the following problem
H? Qi?=E Q?
?? is the hamiltonian in a quantum mechanics problem Q? is the eigenfunction(wave function) E is the eigenvalue



