필터 지우기
필터 지우기

Warning: Integer operands are required for colon operator when used as index

조회 수: 1 (최근 30일)
I have a signal with multiple "pks4" points and I want to select only those elements which are between the first pks4 points - pks4(1) - until the end of the array xfb. So, I give the following command:
k2 = xfb(pks4(1):end)
But in the end I get the warning message "Integer operands are required for colon operator when used as index " about this line and no elements are included in the new k2 array. What is wrong?
Thank you in advance.
  댓글 수: 4
Konstantinos
Konstantinos 2016년 5월 20일
What are you talking about Guillaume?
Stephen23
Stephen23 2016년 5월 20일
편집: Stephen23 2016년 5월 20일
@Konstantinos: Guillaume asked for two very simple pieces of information that will help us to understand and answer your question. In particular:
mod(pks4(1), 1)
tells us if pks4(1) is really an integer. And
numel(xfb)
tells us how many elements xfb has. Both of these are important to understand your problem, even if you don't realize that. When you answer Guillaume's two requests for information then we know much more about your situation. Of course you do not have to give us this information: if you don't tell us then we will simply go outside for a beer in the afternoon sun.

댓글을 달려면 로그인하십시오.

채택된 답변

Konstantinos
Konstantinos 2016년 5월 20일
Finally the problem was solved by converting the double values into integers using the int64 function.

추가 답변 (1개)

Star Strider
Star Strider 2016년 5월 20일
Doing my best to understand what you’re doing, you probably need to use a comparison test:
v = xfb(xfb >= pks4(1));
for k2 = 1:length(v)
execute...
end
Without your data this is only my best guess. It is obviously UNTESTED CODE.
  댓글 수: 2
Konstantinos
Konstantinos 2016년 5월 20일
편집: Konstantinos 2016년 5월 20일
This couldn't work because my data come from electrograms, so they are unstable and they aren't stably increasing or decreasing. That means that I have both positive and negative values (and that's why the message refers to integers possibly). What I want to do is to pick those elements which are between pks4(1) -being the peak of the first electrogram at the recording - and the end of the array. So, what other solutions are there for my case?
Star Strider
Star Strider 2016년 5월 20일
Without your data it’s difficult to tell.
I assume all your ‘pks4’ values are amplitude with respect to time, and time should be linearly increasing. So you have to find the index of that corresponding time value to ‘pks4(1)’, and then use those time indices to create the ‘v’ vector (in my example).

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by