MATLAB Answers

0

How to assign next matching string

Asked by Mekala balaji on 14 Oct 2018 at 0:19
Latest activity Answered by the cyclist
on 14 Oct 2018 at 2:59

Hi, I have below cell array,

STD AMHAT00 PAK497.00   34  Same  12
AT  AAHAT00 YAH00K      34        56
AT  AAHAT00 YAH00K      34        56
STD AAHAT00 PAK897.00   34  Diff  12
STD AAHAT00 PAK897.00   34  same  12
AT  AAHAT00 AKAH00K     34        56
AT  AAHAT00 AKAH00K     84        56
AT  AAHAT00 AKAH00K     84        56
STD AAHAT00 NAK837.00   34  Same  12
STD AAHAT00 NAK837.00   34  Same  45

The 5th column Diff or same is based on column2. If the previous STD column2 is different name, then it lableas Diff, and if it is same then it labeled as same.

Output rule: For each STD, just previous AT rows &5th column is labeled same as the first STD column5. Desired output:

AT  AAHAT00 YAH00K      34  Diff   56
AT  AAHAT00 YAH00K      34  Diff   56
AT  AKHAT50 AKAH00K     34  Same   56
AT  AKHAT50 AKAH00K     84  Same   56
AT  AKHAT50 AKAH00K     84  Same   56

  0 Comments

Sign in to comment.

1 Answer

Answer by the cyclist
on 14 Oct 2018 at 2:59
 Accepted Answer

If c is your input array, then

for nc = size(c,1)-1:-1:1;
    if not(ismember(lower(c{nc,5}),{'same','diff'}))
        c(nc,5) = c(nc+1,5);
    end
end
output = c(ismember(c(:,1),'AT'),:)

  0 Comments

Sign in to comment.