|
"Jos " <#10584@fileexchange.com> wrote in message <gh8bde$cba$1@fred.mathworks.com>...
> "Theodor Zouk" <rebet4@hotmail.com> wrote in message <gh8al2$480$1@fred.mathworks.com>...
> > Hi
> >
> > Is there any function in matlab that can sparse arrays with a higher dimension than 2?
> >
> > What i have is a mulstidimension array that is 256x256x256 elements long. Now, Im know that 4096 of these entries have an value and the rest has the value of zero (= a hell of a lot of zeros =). This multidim array ("cube") is used in a loop where this array is added,subtracted,multiplied elementwise with other multidim arrays also constisting of a lot of zeros. The 4096 entries can be different from each iteration.
> > I think that i will gain some execution speed if i can sparse these multidim arrays and then "eliminate" the calculations over the zeros value entries (elements)...
> >
> > regards
> >
> > Theo
> >
>
> Make your ND arrays a long column vector. When the need arises for getting the row/column/plane indices of the non-zero entries, use IND2SUB. Example
>
> sz = size(NDarray) ;
> B = sparse(NDarray(:)) ;
> B = B + 1 ;
> [subi{1:numel(sz)}] = IND2SUB(sz,find(B))
>
> hth
> Jos
ok, thanks for the help Jos
/theo
|