Path: news.mathworks.com!not-for-mail
From: "Matthew Wade" <cosmicspacepig@googlemail.com>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Matlab path issues
Date: Wed, 20 Aug 2008 13:16:01 +0000 (UTC)
Organization: ttz-Bremerhaven
Lines: 165
Message-ID: <g8h5eh$ql0$1@fred.mathworks.com>
References: <g8grp6$kbo$1@fred.mathworks.com> <16860251.1219237023270.JavaMail.jakarta@nitrogen.mathforum.org>
Reply-To: "Matthew Wade" <cosmicspacepig@googlemail.com>
NNTP-Posting-Host: webapp-05-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1219238161 27296 172.30.248.35 (20 Aug 2008 13:16:01 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Wed, 20 Aug 2008 13:16:01 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1052756
Xref: news.mathworks.com comp.soft-sys.matlab:486434



Bill August <hui.song@beds.ac.uk> wrote in message 
<16860251.1219237023270.JavaMail.jakarta@nitrogen.mathforum.
org>...
> > Thanks for your help.
> > 
> > However, the problem I now have is something like
> > this:
> > 
> > 1. I have a statement 
> > 
> > if ~isdeployed
> > 
> > ...do normal actions
> > 
> > else
> > try
> > a=which('file.xls')
> > xlswrite((fileparts(a),'\file.xls'),options)
> > end
> > end
> > 
> > I have realised the main problem is with the Which
> > function.
> > 
> > Running the application via Matlab gives no problems.
> > But 
> > running the deployed function with which looks ONLY
> > in the 
> > CTF archive folder - as file.xls is not located
> > there, the 
> > application stops.
> > 
> > I know I can add MAT files to the archive, but XLS
> > not.
> > 
> > There must be a way for the deployed application to
> > find a 
> > file anywhere on the path and provide the correct
> > location 
> > text?
> > 
> > Any ideas
> > Thanks
> > Matt
> > 
> > 
> > 
> > 
> > Bill August <hui.song@beds.ac.uk> wrote in message 
> > <411948.1219058896499.JavaMail.jakarta@nitrogen.mathfo
> > rum.or
> > g>...
> > > > Hi,
> > > > 
> > > > I have an application (GUI) that also is compiled
> > as
> > > > a 
> > > > stand-alone executable to be run on other
> > machines.
> > > > 
> > > > 1. The GUI has some functions that require data
> > to be
> > > > 
> > > > saved/called from specific paths, e.g. 
> > > > C:/Matlab7.1/work/Results
> > > > 
> > > > 2. To ensure the data is stored in the correct
> > > > folders, I 
> > > > use cd pathname, or xlswrite('pathname',data),
> > for
> > > > example.
> > > > 
> > > > 3. For some time, I was able to specify the
> > pathname
> > > > as 
> > > > only /Results, and this enabled flexibility - now
> > I
> > > > get 
> > > > error messages (unknown directory) and cannot
> > trace
> > > > back 
> > > > the problem - I now have to use the complete
> > > > pathname.
> > > > 
> > > > 4. When I install the stand-alone executable on a
> > new
> > > > 
> > > > machine, the problem will occur that I do not
> > have
> > > > the same 
> > > > pathname as on the host computer, so when the
> > script
> > > > cd or 
> > > > xlswrite is executed with a specifie path, there
> > will
> > > > be an 
> > > > error.
> > > > 
> > > > Can anyone think of a way to specify
> > > > folders/directories 
> > > > that can be generic to any machine? e.g. a
> > function
> > > > that 
> > > > creates a folder "Results" in a common and
> > sensible 
> > > > location (i.e. the Program location f?r the
> > > > executable and 
> > > > the work folder for the original -m files).
> > > > 
> > > > Thanks
> > > > Matt
> > > Hi
> > > To me I always use the global variable.
> > > Add these code to the main function, and you can
> > use the 
> > relative path base on the root dir. 
> > > global APP_ROOTDIR ;
> > > APP_ROOTDIR = which('APP_Start') ;
> > > CWIND_ROOTDIR = fileparts(APP_ROOTDIR) ;
> > > if isempty(APP_ROOTDIR)
> > >    warning('Please change directory to the root,
> > then 
> > start it again.') ;
> > >     return ;
> > > else
> > > end
> > > 
> > > 
> > > Message was edited by: Bill August
> > > 
> > 
> > 
> Hi Matthew,
> Could you read my reply clearly?
> I guess the file 'file.xls' has a fixed relative path to 
the deployed function (exe)?
> If so, as long as you know the path (APP_PATH) of the 
deployed function (exe) then you can directly get the path 
of you xls file ([APP_PATH, relativepath]). And you DO 
NOT 'which' function any more...

Hi Bill,

Yes, I figured that one out.

Now I compile something like this:

mcc -m file.m -a file.xls

This works, but I am having a problem with some graphic 
files. I have about 50 photographs in a folder called 
Photos. These cannot be used (found on path) by deployed 
function. So I tried:

mcc -m file.m -a file.xls -a C:/Programme.../Photos

Then executed the executable to create the CTF and looked 
in the folder in the mcr folder (Photos) and its empty.

According to the help -a ./Folder, should add all files 
located in that folder. Does not seem to work.

Cheers
Matt