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.

 채택된 답변

jonas
jonas 2018년 10월 23일
편집: jonas 2018년 10월 24일
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

Hey Jonas, how to get the corresponding column C values
jonas
jonas 2018년 10월 24일
편집: jonas 2018년 10월 24일
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
jonas
jonas 2018년 10월 24일
편집: jonas 2018년 10월 24일
A(idc, 3)
Should do it. Have not tested it myself.
Yup, worked. Thank you Jonas
Cheers!

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

추가 답변 (0개)

카테고리

질문:

2018년 10월 23일

댓글:

2018년 10월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by