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

1 view (last 30 days)
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?

Accepted Answer

Seth Furman
Seth Furman on 23 Feb 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.' }

More Answers (1)

Stephen23
Stephen23 on 23 Feb 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

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!