Path: news.mathworks.com!newsfeed-00.mathworks.com!nlpi057.nbdc.sbc.com!prodigy.net!news.glorb.com!news.aset.psu.edu!support1.mathforum.org!not-for-mail
From: Bill August <hui.song@beds.ac.uk>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Matlab path issues
Date: Mon, 18 Aug 2008 07:27:46 EDT
Organization: The Math Forum
Lines: 61
Message-ID: <411948.1219058896499.JavaMail.jakarta@nitrogen.mathforum.org>
References: <g8bhvf$ail$1@fred.mathworks.com>
NNTP-Posting-Host: nitrogen.mathforum.org
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: support1.mathforum.org 1219058896 31268 144.118.30.135 (18 Aug 2008 11:28:16 GMT)
X-Complaints-To: news@support1.mathforum.org
NNTP-Posting-Date: Mon, 18 Aug 2008 11:28:16 +0000 (UTC)
Xref: news.mathworks.com comp.soft-sys.matlab:486000



> 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