What is the way to get only the desired part of the text?

1 visualización (últimos 30 días)
niniki
niniki el 23 de Feb. de 2022
Respondida: Stephen23 el 23 de Feb. de 2022
Hello, I'm a student learning matlab on my own.
Please understand even if I don't understand the contents of the question because I lack knowledge.
It's a question.
What is the way to get only the desired part of the text?
For example
text =
Name: ABC
Age: 20
Gender: Male
Height: 180cm.
Weight: 75.
If there's a text file like this,
I'm going to store the information 20 and 180 I need in the variable 'age, height', respectively.
I'm going to use the function "extract After,
age = extractAfter(text,'age : ')
height = extractAfter(text,'height : ')
If I write the code like this, the result I want will not come out.
Can you tell me another way?

Respuesta aceptada

Seth Furman
Seth Furman el 23 de Feb. de 2022
Take a look at the split and splitlines functions.
text = ['Name: ABC' newline 'Age: 20' newline 'Gender: Male' newline 'Height: 180cm.' newline 'Weight: 75.']
text =
'Name: ABC Age: 20 Gender: Male Height: 180cm. Weight: 75.'
splitlines(text)
ans = 5×1 cell array
{'Name: ABC' } {'Age: 20' } {'Gender: Male' } {'Height: 180cm.'} {'Weight: 75.' }
split(text)
ans = 10×1 cell array
{'Name:' } {'ABC' } {'Age:' } {'20' } {'Gender:'} {'Male' } {'Height:'} {'180cm.' } {'Weight:'} {'75.' }

Más respuestas (1)

Stephen23
Stephen23 el 23 de Feb. de 2022
txt = fileread('test.txt');
tkn = regexp(txt,'^(\w+):\s+(\d*\.?\d*)(\S*)','tokens','lineanchors');
tkn = vertcat(tkn{:})
tkn = 5×3 cell array
{'Name' } {0×0 char} {'ABC' } {'Age' } {'20' } {0×0 char} {'Gender'} {0×0 char} {'Male' } {'Height'} {'180' } {'cm.' } {'Weight'} {'75.' } {0×0 char}
vec = str2double(tkn(:,2))
vec = 5×1
NaN 20 NaN 180 75

Categorías

Más información sobre Characters and Strings 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!

Translated by