Extracting a particular data from the original data
조회 수: 2 (최근 30일)
이전 댓글 표시
I have a data file named rd.txt attached below. 1st column data refers to time and all other columns refers the corresponding distance. Now I want to extract the data for 0.02,0.04,0.06,...60.00 sec (at a difference of 0.02) from 1st column and corresponding distances. Is there a way to extract data from the original data for a particular values? Your answer is highly appreciated. Thank you.
댓글 수: 0
채택된 답변
Star Strider
2016년 11월 14일
You may not be reading your data correctly.
This works for me without error:
fidi = fopen('sam moor rd.txt','rt');
Dcell = textscan(fidi, repmat('%f',1,9), 'CollectOutput',1, 'Delimiter',' ');
D = cell2mat(Dcell);
L = size(D,1);
t = D(:,1);
q = length(t > 0)/L;
ti = 0 : 0.02 : max(t); % Interpolation Vector
Di = interp1(t, D(:,2:end), ti, 'linear'); % Interpolated Data
댓글 수: 2
Star Strider
2016년 11월 14일
편집: Star Strider
2016년 11월 14일
I eliminated the first column from the ‘Di’ matrix, because that is the time vector to use for the interpolation.
Adding the ‘rd_new’ assignment will give you the complete, interpolated ‘rd’ matrix:
fidi = fopen('sam moor rd.txt','rt');
Dcell = textscan(fidi, repmat('%f',1,9), 'CollectOutput',1, 'Delimiter',' ');
D = cell2mat(Dcell);
L = size(D,1);
t = D(:,1);
ti = 0.02 : 0.02 : max(t); % Interpolation Vector
Di = interp1(t, D(:,2:end), ti, 'linear'); % Interpolated Data
rd_new = [ti' Di]; % Complete Interpolated ‘rd’ Matrix
EDIT — Corrected to begin ‘ti’ at 0.02 rather than 0.00.
추가 답변 (1개)
Image Analyst
2016년 11월 14일
I suggest you read the the FAQ on comparing floating point numbers and then use that or try a new function called ismembertol() to find out which rows match your desired times. One might think intersect() might work but because of the FAQ I referred you to, I have my doubts.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!