Read in only certain numbers from a txt file.
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
John Kramer
el 11 de Mayo de 2021
Respondida: Scott MacKenzie
el 11 de Mayo de 2021
Hello All,
I have a bunch of text files where i only need to extract the 11 digit numbers from the txt file. I am currently struggling to only pull those numbers out. I am able to pull out either all the data, all the numbers but not the exact numbers I want. I attached a example of what the text documents I am trying to extract from. I am basically just trying to create a cell array of the 11 digit numbers.
Thanks
J
0 comentarios
Respuesta aceptada
Scott MacKenzie
el 11 de Mayo de 2021
This creates a cell array of the 11-digit numbers in your file...
fileName = 'Example.txt';
n = [];
fid = fopen(fileName);
while ~feof(fid)
line = fgetl(fid);
if length(line) == 11
n = [n; str2double(line) ];
end
end
fclose(fid);
c = num2cell(n)
Output:
c =
9×1 cell array
{[12345678901]}
{[12345678902]}
{[12345678903]}
{[12345678904]}
{[12345678905]}
{[12345678906]}
{[12345678907]}
{[12345678908]}
{[12345678909]}
0 comentarios
Más respuestas (2)
Bob Thompson
el 11 de Mayo de 2021
What does your code look like so far? What are you using to extract the numbers?
Off the top of my head, I recommend using something like regexp to extract the numbers. Here's a quick swag at what it would look like:
11nums = regexp('Example.txt','/D(/d/d/d/d/d/d/d/d/d/d/d)/D','tokens');
This has not been tested.
In theory it looks for an isolated set of numbers, with 11 digits.
0 comentarios
Thomas Jensen
el 11 de Mayo de 2021
Hi John,
Unfotunatelly your input file does not follow a pattern, so your script needs to read line-by-line and check if the line is an array of characters containing 11 digits.
Best regards,
0 comentarios
Ver también
Categorías
Más información sobre Text Files en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!