Something is wrong with this simple code.

조회 수: 1 (최근 30일)
Sergio
Sergio 2013년 6월 27일
Hi, I am quite new here and I am trying to write a code. We have collected data from two channels.
One is actuation count of a relay which is like 0001111111111111111111111111111111111111111111111122222222222.... and a voltage signal that is like 24,24,23,5,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,20,24,24,24,...
I want to analyse the data, and count how many samples occur since the actuation count changes (in the code I compare it to a variable named "x")and the voltage data reaches 0. then I multiply the number of samples for the time of the sample rate to calculate the time it takes to reach 0 Volts totally. Then I add these values to an array "tclosearray". I will appreciate any help.
It says it is busy so I guess a loop is running nonstop.
This is the code:
tclosearray=[];
y=0;
x=0;
for k=1:30000
if UntitledActuation_Count(k)~=x
while UntitledVoltage(k)>=0
if k<= 30000
y=y+1;
k=k+1;
end;
end;
tclose=y*0.01;
tclosearray=[tclosearray;tclose];
y=0;
x=UntitledActuation_Count(k);
end;
end;
  댓글 수: 4
Sean de Wolski
Sean de Wolski 2013년 6월 27일
편집: Sean de Wolski 2013년 6월 27일
@Sergio,
use something like:
disp(UntitledVoltage(k))
Sergio
Sergio 2013년 6월 27일
Thank you for the advice

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

채택된 답변

David Sanchez
David Sanchez 2013년 6월 27일
Make sure the data array
UntitledVoltage(k)
contains some negative data, otherwise the while loop will go on for ever. (see advice given by Sean de Wolski in his comment)
  댓글 수: 1
Sergio
Sergio 2013년 6월 27일
This is the new code. Yes, it didn-t have 0, or negative data, so I changed it for >0.2 which is good after seeing the data. My bad. However, it stills say it is busy and doesn-t create the array with the solutions :(
tclosearray=[];
y=0;
x=0;
for k=1:numel(UntitledVoltage)-1
if UntitledActuation_Count(k)~=x
while UntitledVoltage(k)>0.2
if k<numel(UntitledVoltage)-1
y=y+1;
k=k+1;
end;
end;
tclose=y*0.01;
tclosearray=[tclosearray;tclose];
y=0;
x=UntitledActuation_Count(k);
end;
end;

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by