2014-12-06 7 views
0

У меня есть сигнал y из 52989 x 2 значений. То, что я хочу сделать, это нулевой колодки, пока я не получаю, как сигнал y_mp3 66379 х 2. Здесь образец моего кода:Zeropad a matrix in matlab

P = 13750 
y= [zeros(1,P),w]; 

Я постоянно получаю ошибку: размеры матриц, сцепленных не согласуются. Я попытался переключить аргументы 1 и P или 2, но не подходит. Может кто-то уточнить мою ошибку?

EDIT: Я попробовал следующее предложение, но все тот же:

P = length(y)-length(y_mp3); 
y_mp3_p = y_mp3; 
padsize = P/2; 
padarray(y_mp3_p, [padsize 0]); 

Заранее спасибо всем!

ответ

2

Вы можете использовать функцию MATLAB padarray(). Приведенный ниже код может работать:

padsize = p/2; 
padarray(w, [padsize 0]); 

или,

p = 13750; 
padarray(w, [p 0],'pre'); 
+0

'padarray' - это решение, +1. – Rashid

+0

@Kamtal, спасибо за редактирование .. (: – mehmet

+0

Я просто попробовал Kamtal & Mehmet, но все равно никаких изменений – user3488736

0

Благодаря Мехмет я, наконец, нашел его! Должно быть:

P = size(y,1) - size(y_mp3,1); 
padsize = P/2 ; 
y_p = padarray(y_mp3, [padsize 0],'sym'); 
+0

Вы уверены, что код указан выше. Вы спросили zeropad, но выполняет ли этот код симметричность матрицы сигналов y? В любом случае, если вы так говорите, я рад работать. – mehmet