Structure items as vectors?

David Bateman David.Bateman at motorola.com
Mon Apr 14 05:03:50 CDT 2008


Schirmacher, Rolf wrote:
> Hello,
>
> I want to use structured information for numerical computations. I have a
> structure like
>
> octave.exe> some.data.structure(1).item = 1;
> octave.exe> some.data.structure(2).item = 2;
>
> and later on, I want to do calculations with a vector of "item"s. What I get
> is a list like
>
> octave.exe> some.data.structure.item
> ans =
>
> (,
>   [1] =  1
>   [2] =  2
> ,)
>
> octave.exe> some.data.structure(:).item
> ans =
>
> (,
>   [1] =  1
>   [2] =  2
> ,)
>
>
> On the other hand, I can access the individual elements as scalars like
>
> octave.exe> some.data.structure(1).item
> ans =  1
>
>
> How can I retrive the data as a vector, i.e. overcome such errors most
> easily? 
>
> octave.exe> items_doubled = 2 .* some.data.structure(:).item
> error: binary operator `.*' not implemented for `scalar' by `cs-list'
> operations
> error: evaluating binary operator `.*' near line 59, column 19
> error: evaluating assignment expression near line 59, column 15
>
>   

The returned value above is a comma-separated list in exactly the same
manner as Matlab returns the above. Try "[some.data.structure.item]",
which converts your comma seperated list into a matrix. Or if you can't
be sure the data is numeric, try "{some.data.structure.item}" which
converts it to a cell array.

D.





-- 
David Bateman                                David.Bateman at motorola.com
Motorola Labs - Paris                        +33 1 69 35 48 04 (Ph) 
Parc Les Algorithmes, Commune de St Aubin    +33 6 72 01 06 33 (Mob) 
91193 Gif-Sur-Yvette FRANCE                  +33 1 69 35 77 01 (Fax) 

The information contained in this communication has been classified as: 

[x] General Business Information 
[ ] Motorola Internal Use Only 
[ ] Motorola Confidential Proprietary



More information about the Help-octave mailing list