Следующий код выполняется незаметно
wave = HaarWavelet[];
type = "PrimalLowpass";
h = WaveletFilterCoefficients[
wave, type,
WorkingPrecision -> \[Infinity]
];
h = Flatten[
Take[h,
Range[1, Length[h]],
Table[2, {Length[h]}]
]
]
, но при его заключении в Module
некоторые вещи идут наперекосяк. Рассмотрим функцию
getWaveletFilter[wave_, type_]:=
Module[{filter}, (* treated as local *)
filter = WaveletFilterCoefficients[
wave, type, WorkingPrecision -> \[Infinity]
]
filter = Flatten[
Take[filter,
Range[1, Length[filter]],
Table[2, {Length[filter]}]
]
]
filter
]
. Я бы хотел getWaveletFilter [HaarWavelet [], "PrimalHighpass"]
вернуться
{1/2, -1/2}
Вместо Mathematica есть всевозможные жалобы. Есть предложения?