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
2020-2-12
Ola - consider using reshape to split the signal into a 200x10 array (assuming exactly 2000 elements in ECG signal).
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
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 Center 和 File Exchange 中查找有关 Data Import and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!