Path: news.mathworks.com!not-for-mail
From: "george veropoulos" <veropgr@yahoo.gr>
Newsgroups: comp.soft-sys.matlab
Subject: Re: xls  file  in matlab
Date: Mon, 15 Jul 2013 08:50:13 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 88
Message-ID: <ks0d45$2p$1@newscl01ah.mathworks.com>
References: <krdsv9$m8a$1@newscl01ah.mathworks.com> <krejc3$hca$1@newscl01ah.mathworks.com>
Reply-To: "george veropoulos" <veropgr@yahoo.gr>
NNTP-Posting-Host: www-06-blr.mathworks.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: newscl01ah.mathworks.com 1373878213 89 172.30.248.38 (15 Jul 2013 08:50:13 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Mon, 15 Jul 2013 08:50:13 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1021212
Xref: news.mathworks.com comp.soft-sys.matlab:799313

"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
> 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? ??=? ??

??  is  the  hamiltonian   in  a  quantum mechanics  problem
??  is  the  eigenfunction
E  is  the   eigenvalue