循环数据以集成到块中:MATLAB

Loop through data to integrate in blocks: MATLAB

我目前正在尝试在 Matlab/Octave 中实现一个循环,其中读取文件中的数据,将其存储在一个数组中,然后以 1600 个点为一组(每个数据点的间隔为 10 ns)集成。 我了解我需要做的事情的逻辑,但无法对其进行编码。任何帮助将不胜感激。

trace_int = zeros(320000,1);
trace_c = zeros(200,1);
trace = dlmread('trace_all.dat',' ',[0,0,320000,1]);
while i = 1:200
    trace_i(i,:) = trace(1+1599*(i-1):1:1600*(i));
    trace_c(i,:) = trapz(trace_i(i));
end

这是数据的样子

20 1484  
30 1484  
40 1483  
50 1484  
60 1484  
70 1484  
80 1483  
90 1483 

不需要循环:

% create sample data
trace = [20 1484; 30 1454; 40 1493; 50 1414; 60 1404; 70 1494; 80 1473; 90 483];

n = 4; % this would be 1600 in your case
trace_c = trapz (reshape (trace (:, 2), n, []))

returns:

trace_c =
    4396.0   3910.5