Merge branch 'fixf'
[wrf-fire-matlab.git] / quicwind / dstn.m
blobbf73facf4163c73707d4421cd10f0a4109fcd434
1 function Y = dstn(X,N)\r
2 % discrete sine transform along dimension N\r
3 % Y = dst(X,N)\r
4 % discrete sine transform along dimension N of X\r
5 n = size(X);\r
6 % permute dimensions N <-> 1\r
7 p = 1:length(n);\r
8 p(N)=1; p(1)=N;\r
9 Y = permute(X,p);\r
10 % pad dim 1 by zeros and collapse the others\r
11 m = size(Y);\r
12 mm = prod(m)/m(1);\r
13 Y = reshape(Y,m(1),mm);\r
14 W = zeros(2*m(1)+2,mm);\r
15 W(2:m(1)+1,:)=Y;\r
16 Y = imag( fft(W,[],1) );\r
17 % pick transform between pads and uncollapse\r
18 Y = reshape(Y(2:m(1)+1,:),m);\r
19 % permute dimensions N <-> 1 back\r
20 Y = permute(Y,p);\r