From help-request at octave dot org Wed Dec 22 16:50:15 2004 Subject: Re: Assigning to multiple scalars from a vector From: Geordie McBain To: Neilen Marais Cc: help at octave dot org Date: Thu, 23 Dec 2004 08:41:03 -0500 Neilen: Given the function function varargout = multiassign (data) for k=1:nargout varargout{k} = data(:,k); endfor endfunction you can do octave> vec = [1, 2, 3]; [A, B, C] = multiassign (vec) A = 1 B = 2 C = 3 which is pretty close to what you want. See http://wiki.octave.org/wiki.pl?VariableLengthReturnLists Geordie McBain www.aeromech.usyd.edu.au/~mcbain On Wed, Dec 22, 2004 at 06:20:14PM +0200, Neilen Marais wrote: > Hi All. > > I'd like to be able to assign to several scalar variables from a vector > in one shot. Say I have a vector like this : > vec = [1 ; 2 ; 3] > > I would like to be able to do something like this: > > [A ; B ; C] = vec > > and get A = 1, B = 2, C = 3. > > Octave seems to consider the individual scalars as vectors, so there > aren't enough elements on the RHS according to it. Is there a way to > make this work, or will I have to manually say A = vec(1) etc... ? > > Thanks > Neilen > > > > > ------------------------------------------------------------- > 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 -------------------------------------------------------------