В настоящее время я пытаюсь найти способ перестановки векторов. Например, если у меня есть вектор размером 4 [1 3 5 7]
, и я хочу сжать его до размера 3, это даст мне [1 4 8]
или что-то в этом роде. То же самое для увеличения, но наоборот.Matlab векторы передискретизации
Я искал и нашел функцию Interp и Decimate, который на самом деле сделать это, но проблема в том, что я не имею целое увеличение или сокращение коэффициента. У меня есть векторы размером от 140 до 160, и я хочу, чтобы все они имели размер 150. Это невозможно сделать с Interp или Decimate потому что они работают только с целыми коэффициентами.
Так что я задаюсь вопросом, есть ли какой-нибудь быстрый способ сделать это, или я действительно должен думать о умном способе сделать это переформирование?
Заранее спасибо
'interp1' может это сделать. Также вы должны уточнить, что вы на самом деле хотите. Вы не * увеличиваете * и * сокращаетесь *, но передискретируете. И после того, как вы переустановили, вы не сможете вернуть свой оригинал ... – knedlsepp
Но interp не принимает нецелое число как увеличивающий или уменьшающийся коэффициент, или я не использую Interp правильным способом? Потому что я использую его как interp (A, 150/140) – Delko
'interp1' не принимает коэффициент масштабирования или уменьшения. Вы должны указать точки, которые хотите интерполировать на себя. – rayryeng