function x=arrset(x,i,z)
% arrset - set elements of array and return result
%
% arrset :: 
%    [(S:[[1,E]])->R]          ~'E-dim array of size S',
%    { K:[E] -> [D->[S(K)]] }  ~'cell array of E index arrays', 
%    [D->R]                    ~'data to write' 
% -> [S->R].
%
% Linear indexing version:
%
% arrset :: 
%    [(S:[[1,E]])->R] ~'E-dim array of size S',
%    [D->[prod(S)]]   ~'linear indices between 1 and prod(S)', 
%    [D->R]           ~'data to write' 
% -> [S->R].
if iscell(i), x(i{:})=z;
else x(i)=z; end

