From help-octave-request at bevo dot che dot wisc dot edu Mon Dec 30 16:56:20 2002 Subject: RE: Strings not compatible with Matlab? From: "Julian DeMarchi" To: "James Frye" , "John W. Eaton" Cc: Date: Mon, 30 Dec 2002 17:55:02 -0500 Hi James. Not to add to the confusion, but there already exists a built-in function for your purpose (in Matlab R13): >> help assignin ASSIGNIN Assign variable in workspace. ASSIGNIN(WS,'name',V) assigns the variable 'name' in the workspace WS the value V. WS can be one of 'caller' or 'base'. See also EVALIN. There's also the poor man's (older Matlab) hack -- basically same as the above -- declaring function assignin(ws,name,v); evalin(ws, [name '=' num2str(v)]); ..which works because num2str() acts more accurately as if it would be called makestr() (turns anything into type string, meaning the function does not break even when v is not numeric). As for Octave, if you hack function evalin(ws,name,v); eval([name '=' num2str(v)]); Then you're all set. (Octave/forge supports neither assignin nor evalin.) Disclaimer: Note however I am not entirely clear on how Octave variable scope is handled. I notice that the above example works fine in octave so long as endfunction is not used to conclude function evalin(). Julian -----Original Message----- From: James Frye [mailto:frye at cs dot unr dot edu] Sent: Monday, December 30, 2002 1:27 PM To: John W. Eaton Cc: help-octave at bevo dot che dot wisc dot edu Subject: Re: Strings not compatible with Matlab? On Mon, 30 Dec 2002, John W. Eaton wrote: > That doesn't look like something that will work in Matlab, since it > has ", printf, and endfunction. ... > Can you provide a better example of something that doesn't work in a > compatible way? I hadn't tried that short example with matlab (since it was Sunday, and I would have had to drive into the lab and boot the machine that has Matlab on it, and that would have cut into my skiing time). However, it's abstracted from one of the scripts, which I didn't want to send to the list since it's about 1200 lines. If you're interested, I could email it and a data file. I ought to mention again that I didn't write these scripts. The only contact I've had with Matlab is to start it, run one of them, and look at the output to figure out what the code I'm supposed to be writing is doing. > If you think you have found a bug, can you please submit a complete > bug report to the bug-octave mailing list? If you're not sure what to > include in a complete report, please read the bugs chapter of the > Octave manual (you can find a copy at www.octave.org/bugs.html). I'll have a look at that, especially as I seem to have found more problems with fread... James ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html ------------------------------------------------------------- ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------