if condition is true record value from next row

2 views (last 30 days)
John Kim
John Kim on 15 Nov 2021
Commented: dpb on 15 Nov 2021
I am looking to latency of a trial IF the previous row was incorrect "0" and the current row is correct "1" to answer the question to people answer faster if they get the previous question wrong
I have tried using the code below
tabm.Error = tabm.Correct;
%tabm.Error is a new column I am trying to create
if istable (tabm.Error)
[r,c] = size(tabm.Error);
for i=1:r
A = tabm.Correct(r)==0;
B = tabm.Correct(r+1)==1;
if A && B
tabm.Error = 1;
else tabm.Error = 0;
end
end
end
Currently, the Error column is just a copy of the Correct Column
Thank you!
  1 Comment
dpb
dpb on 15 Nov 2021
You didn't subscript the Error variable in the assignment so each assignment writes the whole vector of 1|0.
Excepting your loop over i doesn't use i at all; every refererence to tabm.Correct is to the last and (non-existant) last + one elements. That looks like should have error'ed on an out-of-bounds reference.
Try something more like
ix=[0;diff(tabm.Correct)==1];
tabm.Error=ix;

Sign in to comment.

Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!