Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反向';缓冲区';Matlab中的函数_Matlab_Buffer_Overlap - Fatal编程技术网

反向';缓冲区';Matlab中的函数

反向';缓冲区';Matlab中的函数,matlab,buffer,overlap,Matlab,Buffer,Overlap,MATLAB的缓冲函数将一个向量分割成一个矩阵,其中每列都是向量的一段(我的问题中的时间序列)。这些线段可以重叠,重叠不需要为50% 我想知道是否有一个反向操作,在对矩阵做了一些操作之后,会得到一个向量?我在考虑一个通用的解决方案,其中重叠不是50% 我已经搜索了问题档案,找不到任何答案 谢谢您可以使用我编写的这个简单函数。还有一个简单的例子,您可以运行和测试 function invbuff = invbuffer(X_buff0, noverlap, L) % Example: % % %

MATLAB的缓冲函数将一个向量分割成一个矩阵,其中每列都是向量的一段(我的问题中的时间序列)。这些线段可以重叠,重叠不需要为50%

我想知道是否有一个反向操作,在对矩阵做了一些操作之后,会得到一个向量?我在考虑一个通用的解决方案,其中重叠不是50%

我已经搜索了问题档案,找不到任何答案


谢谢

您可以使用我编写的这个简单函数。还有一个简单的例子,您可以运行和测试

function invbuff = invbuffer(X_buff0, noverlap, L)
% Example:
% % % A = (1:40)';
% % % N_over = 2;
% % % N_window = 15;
% % % L = length(A);
% % % Abuff0 = buffer(A, N_window, N_over);
% % % Abuff = Abuff0(:, 1:end-0);
% % % invbuff = invbuffer(Abuff, N_over, L);
invbuff0 = [];
for jj=1:size(X_buff0,2)
vec00 = X_buff0(:,jj);
vec00(1:noverlap) = []; % remove overlapping (or it is zero padding of first frame)
invbuff0 = [invbuff0; vec00];
end
invbuff = invbuff0;
invbuff(L+1:end) = []; % remove zero padding of last frame
% sum(sum([A - invbuff])); % == 0
end

祝你好运

您可以使用我编写的这个简单函数。还有一个简单的例子,您可以运行和测试

function invbuff = invbuffer(X_buff0, noverlap, L)
% Example:
% % % A = (1:40)';
% % % N_over = 2;
% % % N_window = 15;
% % % L = length(A);
% % % Abuff0 = buffer(A, N_window, N_over);
% % % Abuff = Abuff0(:, 1:end-0);
% % % invbuff = invbuffer(Abuff, N_over, L);
invbuff0 = [];
for jj=1:size(X_buff0,2)
vec00 = X_buff0(:,jj);
vec00(1:noverlap) = []; % remove overlapping (or it is zero padding of first frame)
invbuff0 = [invbuff0; vec00];
end
invbuff = invbuff0;
invbuff(L+1:end) = []; % remove zero padding of last frame
% sum(sum([A - invbuff])); % == 0
end
祝你好运