Страница 1 из 1

перевести код в matlab

Добавлено: Чт май 10, 2012 5:32 am
werom
Здравствуйте, помогите пожалуйста. Если кто-то знаком и с Mathematica и с MATLAB переведите пожалуйста этот код в MATLAB

Код: Выделить всё

Primer[t_, s_, tI_, T_, B_, opt_] :=
  Module[{Np = Length[t], K, \[Phi], a, \[CapitalDelta]f, TT},
   TT = Np T;
   \[CapitalDelta]f = 1/TT;
   If[opt === 1,
    K = Min[{Floor[(Np B T - 1)/2], Np}],
    K = Min[{Ceiling[(Np B T - 1)/2], Np}]];
   If[K > Np, Abort[]];
   \[Phi] =
    Table[E^(I 2 Pi k \[CapitalDelta]f t[[n]]), {n,
      Length[t]}, {k, -K, K}];
   a = LeastSquares[\[Phi], s];
   
   Re[Table[
     a.Table[E^(I 2 Pi k tI[[p]]/TT), {k, -K, K}], {p, Length[tI]}]]
   ];

Добавлено: Сб дек 29, 2012 3:48 am
tutm
% это не полная,бо не знаю LeastSquares,и типы ваших
% данных с размерностями
% Primer([1 2 3 4],2,[1 2 3 4],4,5,1)
% выдаёт 9х9 матрицу



function out = Primer(t,s,tI,T,B,opt)
Np = length(t);
TT = Np*T;
df = 1./TT;
if opt==1
K = min([floor((Np*B.*T-1)/2) Np]);
else
K = min([ceil((Np*B.*T-1)/2) Np]);
end
if K>Np,error('K > Np');end
fi = exp(2i*pi*df*t'*(-K:K));
%a = LeastSquares(fi,s);
a = fi;
out = real( rot90(a)*exp( (2i*pi*df*tI'*(-K:K))/TT ) );