How can i extract the numbers from string?

1 view (last 30 days)
Im trying to extract the numbers from a cell array? How can i do this?
cell array:
filename =
1×12 cell array
Columns 1 through 4
{'104p8.png'} {'105.png'} {'105p2.png'} {'105p4.png'}
Columns 5 through 8
{'105p6.png'} {'105p8.png'} {'106.png'} {'106p2.png'}
Columns 9 through 12
{'106p4.png'} {'106p6.png'} {'106p8.png'} {'107.png'}
Thanks
  4 Comments
Happy PhD
Happy PhD on 7 Nov 2022
I expect to return the value: 104.8
p is '.'
Marcel
Marcel on 7 Nov 2022
you might wanna update you question with this information

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 7 Nov 2022
Edited: Stephen23 on 7 Nov 2022
Here are two approaches:
C = {'104p8.png','105.png','105p2.png','105p4.png','105p6.png','105p8.png','106.png','106p2.png','106p4.png','106p6.png','106p8.png','107.png'}
C = 1×12 cell array
{'104p8.png'} {'105.png'} {'105p2.png'} {'105p4.png'} {'105p6.png'} {'105p8.png'} {'106.png'} {'106p2.png'} {'106p4.png'} {'106p6.png'} {'106p8.png'} {'107.png'}
V = str2double(strrep(strrep(C,'.png',''),'p','.'))
V = 1×12
104.8000 105.0000 105.2000 105.4000 105.6000 105.8000 106.0000 106.2000 106.4000 106.6000 106.8000 107.0000
V = str2double(regexprep(C,{'\.png$','p'},{'','.'},'ignorecase')) % more robust
V = 1×12
104.8000 105.0000 105.2000 105.4000 105.6000 105.8000 106.0000 106.2000 106.4000 106.6000 106.8000 107.0000

More Answers (1)

Marcel
Marcel on 7 Nov 2022
Edited: Marcel on 7 Nov 2022
Hi i made a test script and came up with the following code. I found a solution here
example = cellstr(["1024.png", "image1003.png", "photo-1234.png"])
for i=1:length(example)
name = example{i};
numbers = str2double(extract(name, digitsPattern))
end
example =
1×3 cell array
{'1024.png'} {'image1003.png'} {'photo-1234.png'}
numbers =
1024
numbers =
1003
numbers =
1234

Categories

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

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!