[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: why cell arrays are used in 'interp2'
From: |
Sergei Steshenko |
Subject: |
Re: why cell arrays are used in 'interp2' |
Date: |
Tue, 25 Dec 2012 07:52:27 -0800 (PST) |
----- Original Message -----
> From: Ben Abbott <address@hidden>
> To: Sergei Steshenko <address@hidden>
> Cc: Octave users list <address@hidden>
> Sent: Tuesday, December 25, 2012 5:27 PM
> Subject: Re: why cell arrays are used in 'interp2'
>
>
> On Dec 24, 2012, at 10:25 PM, Sergei Steshenko wrote:
>
>> Hello,
>>
>> looking into 'octave-3.6.2/share/octave/3.6.2/m/general/interp2.m'
> file I see:
>>
>> "
>> 265 ## construct the cubic hermite base functions in x, y
>> 266
>> 267 ## formulas:
>> 268 ## b{1,1} = ( 2*t.^3 - 3*t.^2 + 1);
>> 269 ## b{2,1} = h.*( t.^3 - 2*t.^2 + t );
>> 270 ## b{1,2} = (-2*t.^3 + 3*t.^2 );
>> 271 ## b{2,2} = h.*( t.^3 - t.^2 );
>> 272
>> 273 ## optimized equivalents of the above:
>> 274 t1 = tx.^2;
>> 275 t2 = tx.*t1 - t1;
>> 276 xb{2,2} = hx.*t2;
>> 277 t1 = t2 - t1;
>> 278 xb{2,1} = hx.*(t1 + tx);
>> 279 t2 += t1;
>> 280 xb{1,2} = -t2;
>> 281 xb{1,1} = t2 + 1;
>> 282
>> 283 t1 = ty.^2;
>> 284 t2 = ty.*t1 - t1;
>> 285 yb{2,2} = hy.*t2;
>> 286 t1 = t2 - t1;
>> 287 yb{2,1} = hy.*(t1 + ty);
>> 288 t2 += t1;
>> 289 yb{1,2} = -t2;
>> 290 yb{1,1} = t2 + 1;
>> 291
>> 292 ZI = zeros (size (XI));
>> 293 for i = 1:2
>> 294 for j = 1:2
>> 295 zidx = sub2ind (size (Z), yidx+(j-1), xidx+(i-1));
>> 296 ZI += xb{1,i} .* yb{1,j} .* Z(zidx);
>> 297 ZI += xb{2,i} .* yb{1,j} .* DX(zidx);
>> 298 ZI += xb{1,i} .* yb{2,j} .* DY(zidx);
>> 299 ZI += xb{2,i} .* yb{2,j} .* DXY(zidx);
>> 300 endfor
>> 301 endfor
>>
>> ".
>>
>> It looks to me only numeric data is used as array elements, so why cell
> arrays and not regular 2d matrices ?
>>
>> Speed ? Space ? Something else I couldn't think of ?
>>
>>
>> Thanks,
>> Sergei.
>
> The cell-arrays contian 2D matrices whose sizes are [numel(yi), numel(xi)].
>
> Ben
4d matirces are also supported by Octave directly through m(t, u, v, x)
notation, so are cell arrays to improve memory utilization ? Or speed ?
Thanks,
Sergei.
>
- why cell arrays are used in 'interp2', Sergei Steshenko, 2012/12/24
- Re: why cell arrays are used in 'interp2', Ben Abbott, 2012/12/25
- Re: why cell arrays are used in 'interp2',
Sergei Steshenko <=
- Re: why cell arrays are used in 'interp2', Ben Abbott, 2012/12/25
- Re: why cell arrays are used in 'interp2', Sergei Steshenko, 2012/12/25
- Re: why cell arrays are used in 'interp2', Michael Goffioul, 2012/12/25
- Message not available
- Re: why cell arrays are used in 'interp2', Michael Goffioul, 2012/12/25
- Message not available
- Re: why cell arrays are used in 'interp2', Michael Goffioul, 2012/12/25
- Re: why cell arrays are used in 'interp2', c., 2012/12/25