Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: xls file in matlab
Replies: 4   Last Post: Jul 15, 2013 5:07 AM

 Messages: [ Previous | Next ]
 george veropoulos Posts: 45 Registered: 6/26/10
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 1-by-1 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 (1-by-1) value of
> the loop variable. Thus even if you made B be 10000-by-1:
>
> B = ones(10000, 1);
>
> This line will make it 1-by-1. To make B be a 10000-by-1matrix 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
> http://www.mathworks.com

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

Date Subject Author
7/8/13 george veropoulos
7/8/13 Derek Goring
7/8/13 Steven Lord
7/15/13 george veropoulos
7/15/13 george veropoulos