help-octave
[Top][All Lists]

## Re: any get() and assign() functionality (as in Splus)

 From: Mirek Kwasniak Subject: Re: any get() and assign() functionality (as in Splus) Date: Wed, 24 Apr 2002 18:25:54 +0200 User-agent: Mutt/1.3.28i

```On Wed, Apr 24, 2002 at 03:27:37PM +0000, Stefan Jonsson wrote:
> I am trying to find a way to work around the fact that Octave does not
> support 3D arrays
>
> I have 60 squared matrices   of order 10. A01, A02, ... ,A60
>
> in a for loop I want to get the jth A matrix.
>
> Lets say I have a vector of all the names of all the A        matrices such:
>
> Anames = [ "A01"; "A02" ; .... ; "A60']
>
> and to expand on this quetion lets say I have the  Xnames vector as well
> Xnames = [ "x01"; "x02" ; .... ; "x60']
>
> I have x0 defined as vector of size 10.
>
> I want to create 60 x vectors that corresponds to the entries in Xnames.
> x01, x02, ..... ,x60
>
>
> is there a way by any means to extract from the name vector the
> corresponding Aj matrix. And similarly put the result from a calculation in
> a x-vector that corresponds to the name found
> in Xnames(j)
>
>
> Example:
>
> for j = 1:N  # where N can take a value from 1 to 60
>
> Aj = get.matrixfrom.a.name.vector(Anames(j))
>
> xj = Aj*x0
>
> Assign xj to a vector who's name is = Xnames(j)
>
> endfor

Hi,

It is possible use of eval:

for j = 1:N
eval( [ Xnames(j,:), '=', Anames(j,:), '*x0;' ] );
endfor

but I think it would be better rewrote your code to use linear
(one-dimensional) indexing scheme.

Mirek

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

```