extracting only number from text file
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi,
I have a large text file which has data in below format
frame_count: 1, frame_type: p, mv_dst: (8, 8), mv_src: (8, 8), mv_type: f, motion: (0, 0, 4), mb: (16, 16)
frame_count: 1, frame_type: p, mv_dst: (24, 8), mv_src: (24, 8), mv_type: f, motion: (0, 0, 4), mb: (16, 16)
and so on.
I want to extract the value of mv_dst,mv_src and first two numbers of value motion and store in a matrix in below format
frame_count: 1, frame_type: p, mv_dst: (8, 8), mv_src: (8, 8), mv_type: f, motion: (0, 0, 4), mb: (16, 16)
Matrix should have value like this
first matrix with value from mv_dst(8,8) and first value from motion motion: (0, 0, 4) [ 0 in this case]
x_vec y_vec motion
8 8 0
second matrix with value from mv_src(8,8) and second value from motion :motion: (0, 0, 4) [ 0 in this case]
x_vec y_vec motion
8 8 0
댓글 수: 0
채택된 답변
Akira Agata
2020년 4월 21일
How about the following?
% Read the original text file
c = readcell('data.txt','Delimiter','\n');
% Extract coordinates from each line
cData = regexp(c,'\d+,\s+\d+(,\s+\d+)*','match');
cData = vertcat(cData{:});
% Arrange the numbers
mv_dst = str2double(split(cData(:,1),','));
mv_src = str2double(split(cData(:,2),','));
motion = str2double(split(cData(:,3),','));
% 1st and 2nd matrix
T1 = array2table([mv_dst,motion(:,1)],'VariableNames',{'x_vec','y_vec','motion'});
T2 = array2table([mv_src,motion(:,2)],'VariableNames',{'x_vec','y_vec','motion'});
댓글 수: 5
Akira Agata
2020년 4월 22일
Hi Arya-san,
Thank you for sharing the file. But, unfortunately, I could not unzip the file. Could you upload the file (original file or newly zipped file) again?
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!