how to extract this data?
1 回表示 (過去 30 日間)
古いコメントを表示
Anyone,
I want to extract the data in the end row.
The meaningful data comes every "0" changes in the first row...
Best,
Pen
2 件のコメント
dpb
2016 年 2 月 4 日
Paste the data as text rather than as an image if you expect somebody to actually do anything other than "air code"
採用された回答
Star Strider
2016 年 2 月 4 日
One option:
fidi = fopen('your_text_file_name.txt','r');
Data = textscan(fidi, '%f%f%f', 'HeaderLines',4, 'CollectOutput',1);
fclose(fidi);
You might have to add an 'EndOfLine' argument if you only get a (1x1) cell from the previous code:
fidi = fopen('your_text_file_name.txt','r');
Data = textscan(fidi, '%f%f%f', 'HeaderLines',4, 'CollectOutput',1, 'EndOfLine','\r\n');
fclose(fidi);
You can then parse the columns as you wish. Use a cell array. Find the zeros in the first column using the find function:
DataD = cell2mat(Data);
Zeros1 = [find(DataD(:,1) == 0); size(DataD,1)];
for k1 = 1:length(Zeros1)
Record{k1} = DataD(Zeros1(k1):Zeros1(k1+1)-1,:);
end
Note — This is UNTESTED CODE, since I do not have your file to test it with.
10 件のコメント
Star Strider
2016 年 2 月 4 日
My pleasure.
If my Answer solved your problem as you stated it in your Question, please Accept it.
その他の回答 (1 件)
dpb
2016 年 2 月 4 日
As noted above, w/o a file to test, something like
fid=fopen('yourfile'); % open file
d=cell2mat(textscanf(fid,'','headerlines',4)); % read numeric data (Nx3 array)
fid=fclose(fid); % done w/ file
ix=[find(d(:,1)==0);length(d)+1]; % locations of segment breaks in data plus end
for i=1:length(ix)-1 % over the number of breaks
data{i}=d(ix(i):ix(i+1)),3); % save each group as a cell array
end
Do whatever with the contents of data for each cell as desired.
参考
カテゴリ
Help Center および File Exchange で Linear Algebra についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!