Subscript indices must either be real positive integers or logicals.
4 views (last 30 days)
Show older comments
I am trying to find the on/off times of EMG data, but MATLAB is giving the following error for the line with stars in my code:
Subscript indices must either be real positive integers or logicals.
I'm not sure what this means for my data. Any explanations would be helpful.
%%Find the on/off times of the EMG data within each rep
i = 1;
j = 1;
for r = 1:length(spans(:,1))
if spans(r,1) == 1 && spans(r-1,1) == 0
%The first marker point
first_marker = r;
end
end
thresh = 2.*std(EMG(1:first_marker));
for a = 1:7
EMGreps = Repetitions{1,a};
for c = 1:7
for r = 1:length(EMGreps)
if EMGreps(r,1) > thresh && EMGreps(r-1,1) < thresh
% Determines if the EMG data is on
On_EMG(i,c) = r/sampRate;
i = i + 1;
end
*** if EMGreps(r,1) < thresh && EMGreps(r-1,1) > thresh
% Determines if the EMG data is off
Off_EMG(j,c) = r/sampRate;
j = j + 1;
end
end
end
end
2 Comments
Image Analyst
on 9 Dec 2014
Like almost everyone else, you don't include the full error message. Please copy and paste ALL THE RED TEXT - don't just snip out a small part of it that leaves out the crucial information like what line of code the error happened at.
Accepted Answer
Geoff Hayes
on 9 Dec 2014
Alyna - the error message is telling you that an index into an array must be a positive integer or logical. In your case, you are trying to use zero as an index into EMGreps at
EMGreps(r-1,1)
which is the second condition in both of your if statements. Note how the index variable r starts at one, and so r-1 is zero. Start this variable at two and you should be good to continue
for r=2:length(RMGreps)
% etc
end
0 Comments
More Answers (0)
See Also
Categories
Find more on Spectral Estimation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!