[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: Assigning to multiple scalars from a vector

**From**: |
Geordie McBain |

**Subject**: |
Re: Assigning to multiple scalars from a vector |

**Date**: |
Thu, 23 Dec 2004 08:41:03 -0500 |

**User-agent**: |
Mutt/1.5.6+20040907i |

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
-------------------------------------------------------------