For LOOP for splitting an ECG signal into different CHUNKS

10 次查看(过去 30 天)
I have an ECG signal `[xx]` with length is 2000, I am trying to create "for loop function" that can split the signal into 10 separate chunks but I am experiencing difficulty. That is, I want to achieve something like this:
yy1 = xx(1:200) -----chunk 1;
yy2 = xx(201:400) ----chunk 2 ;
.
.
.
.
yy10 = xx(1801:2000)-----chunk 10;
A "for loop" will make this faster for me especially with a signal of larger length.
Please, any suggestion on how to do this with a for "loop"?
  2 个评论
Geoff Hayes
Geoff Hayes 2020-2-12
Ola - consider using reshape to split the signal into a 200x10 array (assuming exactly 2000 elements in ECG signal).
Jon
Jon 2020-2-12
Sorry Geoff, I was busy writing my answer when you made the above suggestion. As you can see I also went for the reshape approach.

请先登录,再进行评论。

采纳的回答

Jon
Jon 2020-2-12
编辑:Jon 2020-2-12
It's not really clear to me from your description what you are trying to do. From what I can infer from your description you have a 2000 by 1 or maybe 1 by 2000 vector of ECG data points and you want to break it up into 10 equal length portions for some type of analysis. I would suggest doing something like this where x is your original length 2000 vector of ECG points and y is the result of some calculation using some function that I will call for the example myFun. You can adapt accordingly to your specific needs
% define dimensions
numPoints = length(x); % 2000 in your case
numSegments = 10; % number of segments
segLength = numPoints/numSegments;
% make a data array that has a column of data for each non-overlapping segment
X = reshape(x,segLength,numSegments)
y = zeros(numSegments,1); % preallocate array to hold results
for k = 1:numSegments
y(k) = myFun(X(:,k))
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Import and Analysis 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by