Path: news.mathworks.com!not-for-mail
From: "jay vaughan" <jvaughan5.nospam@gmail.com>
Newsgroups: comp.soft-sys.matlab
Subject: Re: eval begone!
Date: Mon, 21 Apr 2008 04:45:03 +0000 (UTC)
Organization: harvard
Lines: 50
Message-ID: <fuh64f$hjf$1@fred.mathworks.com>
References: <fuh46i$pav$1@fred.mathworks.com> <fuh4fb$743$1@canopus.cc.umanitoba.ca>
Reply-To: "jay vaughan" <jvaughan5.nospam@gmail.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 1208753103 18031 172.30.248.35 (21 Apr 2008 04:45:03 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Mon, 21 Apr 2008 04:45:03 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1215048
Xref: news.mathworks.com comp.soft-sys.matlab:464233




Walter,

Very clever...I like it. 


Thanks,

J


P.S. Minor detail...I had to put '-struct' before struct
name 'outstruct' as shown below...

save('saved_file.mat', '-struct', 'outstruct');


roberson@ibd.nrc-cnrc.gc.ca (Walter Roberson) wrote in
message <fuh4fb$743$1@canopus.cc.umanitoba.ca>...
> In article <fuh46i$pav$1@fred.mathworks.com>,
> jay vaughan <jvaughan5.nospam@gmail.com> wrote:
> 
> >I've seen many posts on the Matlab newsgroup stating that
> >eval is evil and should be avoided. Upon attempting to
> >exorcise my code, I couldn't get rid of one of them...
> 
> >Essentially I have a variable 'var' which I want to save
> >within a .mat file but with a name other than 'var'. The
> >user supplies the name. Here's how I do it now.
> 
> >var = [1 2 3];
> >answer = inputdlg('choose a name');
> >var_name_from_user = answer{1};
> >eval([var_name_from_user '=var;']);
> >save('saved_file.mat',var_name_from_user);
> 
> >Any ideas how to do this without eval? It's probably easy
> >but I just can't see it. 
> 
> 
> outstruct.(var_name_from_user) = var;
> save('saved_file.mat', 'outstruct', '-struct');
> -- 
>   "Why does he stagger his mind with the mathematics of
the sky?
>   Once the question mark has arisen in the human brain the
answer must
>   be found, if it takes a hundred years. A thousand years."
>                                               -- Walter Reisch