2014-10-08 4 views
0

У меня есть матрица N на 7, соответствующая 7-канальному входу. Я хотел был бы буферизировать этот вход в окнах из 30 образцов с перекрытием 29 образцов.буферная функция с матрицей

для ввода 1 канала Я хотел бы использовать функцию буфера

timeinterval = 30; 
timeoverlap = 29;  
buf=buffer(input_vec,timeinterval,timeoverlap,'nodelay'); 

Можно ли использовать функцию буфера с N на 7 матрицы? Я не мог найти, как в помощи.

Благодаря

+0

Вы нацелены на результат 3D матрицы с индексом буфера на третьем измерении? –

+0

Да, было бы неплохо – gabboshow

+0

Я также открываю другие решения, с высоким предпочтением к тому, которое не создает тяжелый вывод ... так как я работаю с очень длинным входом для анализа последовательно У меня есть некоторые ограничения памяти. – gabboshow

ответ

0

Если результат требуется, чтобы быть 3D массив, индексированный сигналы последнего, затем:

%// Usually the test cases are given :-) 
signals  = repmat(transpose(1:100), 1,7); 
buff_length = 5; 

%// No one-liners today 
n_signals = size(signals, 2); 
buff_cell = cell(1, n_signals); 
for k = 1:n_signals 
     buff_cell{k} = buffer(signals(:,k), buff_length); 
end; 

result = cat(3, buff_cell{:}); 
Смежные вопросы