Is there a simple approach to adding spaces before and after every number in a cell array, where each cell is a combination of numbers and letters?
Show older comments
Hello,
I have an [m x n] cell in the range of thousands. For simplicity, let's deal with a 2x3 cell instead. The elements are as follows:
{[123xswqe412]} {[xasdak12399a8s]} {[123123xq13]}
{[qasoasf1231]} {[asd11skka13551]} {[127u8adkja]}
Can you please advise on how I can make it so that the output is as follows:
{[123 xswqe 412]} {[xasdak 12399 a 8 s]} {[123123 xq 13]}
{[qasoasf 1231]} {[asd 11 skka 13551]} {[127 u 8 adkja]}
Any help would be appreciated!
Thanks in advance!
1 Comment
dpb
on 4 May 2018
That's almost assuredly a regexpr job but beyond my pay grade to try to write the expression! :)
Accepted Answer
More Answers (1)
jonas
on 4 May 2018
I'll just go ahead and give an alternative answer because I spent way too much time trying to solve this seemingly easy problem :)
clear all;
str='1.23AB.C44444OA43872AX5';
[ind11,ind12] = regexp(str, '\d[A-Za-z]');
[ind21,ind22] = regexp(str, '[A-Za-z]\d');
ind=sort([ind11 ind12 ind21 ind22])
chars=str(ind)
str=regexprep(str,'\d[A-Za-z]','X X')
str=regexprep(str,'[A-Za-z]\d','X X')
ind3=regexp(str,'X')
str(ind3)=chars
I tried solving the problem with '.', as mentioned in the comment. Unfortunately a new bug appeared, where substrings like 21.FP will not be split. Not sure how to solve that though.
1 Comment
Hans Sunaryanto
on 4 May 2018
Categories
Find more on Get Started with MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!