Effacer les filtres
Effacer les filtres

Grep a numeric array from a text file

8 vues (au cours des 30 derniers jours)
fsgeek
fsgeek le 18 Août 2017
Commenté : fsgeek le 18 Août 2017
Dear all,
I have a text file which contains numeric data enclosed with square brackets and parentheses. The data delimiter is a comma. The contents of the file look like this:
[(1, 2, 3), (4, 5, 6, 7), (8, 9)]
The values themselves are arbitrary; I chose ascending integers for convenience. The length of each set of values enclosed by parentheses is arbitrary and could be different every time the file is written. The parentheses always enclose at least one value.
I would like to read the text file so that I get an array like this:
values =
1 2 3 4 5 6 7 8 9
whos values
Name Size Bytes Class Attributes
values 1x9 72 double
So far, I have loaded the text file so that I have a structure containing the text data. I am having trouble converting the data to an array, but I'm guessing that I need regexp().
This is what I've tried:
fileName = sprintf('..\data.dat', pwd);
data= importdata(fileName, ',');
data= cell2mat(data);
% Arrange the sub (node) IDs
values = regexp(data, '), (', 'split');
This does something vaguely close to what I need, but it's not correct. I have searched the forums but can't find anything similar to this text format.
Any help would be greatly appreciated, thanks!
Best regards,
Louis Vallance
  2 commentaires
Stephen23
Stephen23 le 18 Août 2017
What do you expect this to do?:
sprintf('..\data.dat', pwd);
fsgeek
fsgeek le 18 Août 2017
Oops, that was a typo :) I don't have a problem opening the file so that line can be ignored.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 18 Août 2017
Modifié(e) : Stephen23 le 18 Août 2017
>> str = '[(1, 2, 3), (4, 5, 6, 7), (8, 9)]';
>> str2double(regexp(str,'\d+','match'))
ans =
1 2 3 4 5 6 7 8 9
and to read the data from the file you could simply use fileread:
str = fileread(...)

Plus de réponses (0)

Catégories

En savoir plus sur File Operations 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!

Translated by