📄 gluedata.m
字号:
function sigseg = gluedata(signal,n0,l)% GLUEDATA concatenate data segments of one long signal into one new data% vector%% Usage: sigseg = gluedata('signal',n0,l)% signal: the string 'signal' must be the name of data segments % available in MAT files on your MATLAB path with filenames% 'signal_0', 'signal_1'... % n0: beginning of signal piece.% l: length of signal piece. % sigseg: signal piece signal(n0:n0+l-1), returned as a column.%% GLUEDATA can be used in exercises to maximize the length of used data% vectors for limited student versions of MATLAB. See the user manual% for the particular limitations of the array size for your version of% MATLAB.%---------------------------------------------------------------% copyright 1997, by C.S. Burrus, J.H. McClellan, A.V. Oppenheim,% T.W. Parks, R.W. Schafer, & H.W. Schussler. For use with the book% "Computer-Based Exercises for Signal Processing Using MATLAB"% (Prentice-Hall, 1994).%---------------------------------------------------------------if nargin~=3 error('Wrong number of arguments! See help for correct usage.');endn0 = round(n0);if n0<=0 error('The index n0 has to be larger than 0!')endl = round(l);if l<1 error('The signal length l has to be larger than 0!')endif exist([signal,'_0.mat'])~=2 error(['Data segments with filenames: ',signal,'_n.mat do not exist!']);endsigseg = zeros(l,1);cn = 0;cf = 0;ld = 0;daseg = [];while 1 sicf = [signal,'_',int2str(cf)]; filename = [sicf,'.mat']; if ~exist(filename), break, end eval(['load ',filename]); daseg = eval(sicf); eval(['clear ',sicf]); daseg = daseg(:); ld = length(daseg); if cn+ld>=n0 & cn<n0+l sigseg(max(cn-n0+2,1):min(cn+ld-n0+1,l)) = ... daseg(max(1,n0-cn):min(ld,n0+l-1-cn)); elseif cn>=n0+l break; end cn = cn+ld; cf = cf+1;end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -