循环数据以集成到块中: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
我目前正在尝试在 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