How can I add a character in between two characters in specific order in a string?

19 views (last 30 days)
I have a list of elements as strings. For example,
6Li2 17O2 17O C+D3 C+D3 C3 28Si+H3 13C+D3 23Na C2+H4 13C2+H2
Every time there's a number after a letter I want to add a multiplication sign. So H3 would be H*3 but 13C would remain 13C. I was thinking of using if,else statements and use isstrprop to find if it is letter then digit but not sure how to do this. Is there a better way?

Answers (1)

Tiasa Ghosh
Tiasa Ghosh on 30 Aug 2018
Edited: Tiasa Ghosh on 30 Aug 2018
Maybe you could use iteration for all element of string array. First find the position pos of the number in the string with strfind. Then check if the element in pos-1 is a letter character with ~isnan. If yes, insert a * with sprintf

Community Treasure Hunt

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

Start Hunting!

Translated by