Based on Column 3 values how to get specific column 1 values?

I have 3 columns of data coming from excel, Please find attached txt file, for instance in the attached txt file when column C is '0', i would like to get the value of column A at that point and the two more values above it i.e 2301,2300,2244 in the attached file.

 Accepted Answer

fid = fopen('sample.txt')
out = textscan(fid,'%f%f%f','headerlines',1);
fclose(fid)
A = cell2mat(out);
id0 = find(A(:,3) == 0);
idc = [id0,id0-1,id0-2];
idc = unique(idc)
idc(idc<1) = [];
A(idc, 1)
ans =
2244 2300 2301
works for multiple zeros as well

6 Comments

Hey Jonas, how to get the corresponding column C values
What do you mean? For other values such as 0.5 and 1? Just change this line
id0 = find(A(:,3) == 0);
change here
Note that I've updated the answer. There was a bug previously where the script would return an error if the target was either the first or the second row, because in that situation "two previous values" does not exist.
no, i mean 2244,2300, 2301 are column A values, so i want the corresponding column c values for them, which would be (1,0.5,0) i guess and thanks for bug fixing
A(idc, 3)
Should do it. Have not tested it myself.

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB 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!