I have data under headings with underscore.i e. tce500_a,tce500_b... How can I read data under tce500_c. The '_' is not recotnized and using t500 reads all of them.Thanks
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Marina Evans
le 21 Nov 2017
Réponse apportée : Walter Roberson
le 21 Nov 2017
t500_a
0 50
0.5 40
I want to read the data under each heading distinguished by _a,_b,_c, etc.
3 commentaires
Réponse acceptée
Walter Roberson
le 21 Nov 2017
S = fileread('YourFileName.txt');
[headers, block_start] = regexp(S, '^[^\n]*_[^\n]*', 'lineanchors', 'match');
block_bounds = [block_start, length(S)+1];
headers_to_extract = {'t500_c', 'ta719_d'};
num_to_extract = length(headers_to_extract);
extracted_data = cell(num_to_extract, 1);
[tf, blkidx] = ismember(header_to_extract, headers);
for K = 1 : num_to_extract
if ~tf(K)
fprintf('Warning: header "%s" not found in file\n', headers_to_extract{K});
else
thisidx = blkidx(K);
thisblock = S( block_bounds(thisidx) : block_bounds(thisidx+1) - 1 );
extracted_data(K) = textscan(thisblock, '%f %f', 'HeaderLines', 1, 'CombineOutput', 1); %note rhs is a cell
end
end
The result will be a cell array, extracted_data, with as many entries as was in the list headers_to_extract, each entry of which is the relevant data from the file. In the case where the header was not found in the file, the entry will be empty. The cells will be in the same order as headers_to_extract
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Workspace Variables and MAT Files dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!