MATLAB Answers

0

How to remove a bracketed number from a cell array while leaving the number in front of it alone

Asked by Robert Garneau on 11 Nov 2018 at 5:06
Latest activity Commented on by Robert Garneau on 11 Nov 2018 at 13:08
Hi, I have a cell array called "mycellarray" with the following types of strings in it: 24[13]
The [13] in this case is a reference to a footnote and I want to remove the [13] and just have the number 24 left. How do I use a regular expression to remove "[13]" or any footnote i.e. [3] from the number.
Example of the contents of the cell array
13.4[5]
24[11]
56.99[23]
22[4]
I want to remove all the bracketed values along with the number inside the brackets and just have the double number in front kept in the cell array Thank you for your help.. Bob

  0 Comments

Sign in to comment.

2 Answers

Answer by Walter Roberson
on 11 Nov 2018 at 6:32
 Accepted Answer

newstring = regexprep(oldstring, '\[\d+\]', '') ;

  1 Comment

Thank you so much. There were so many good answers it hard to pick just one. thanks....

Sign in to comment.


Answer by madhan ravi
on 11 Nov 2018 at 5:08
Edited by madhan ravi
on 11 Nov 2018 at 6:40

mycellarray={'24[13]'}
regexprep(mycellarray, '\[(.*?)\]', '$1') %edited after sir Walter's comment
or
A='13.4[5] 24[11] 56.99[23] 22[4]'
A(A=='[') = [];
% Remove any and all right brackets.
A(A==']') = []

  2 Comments

'\[(.*)\]' selects too much if there can be multiple matches in one string. '\[(.*?)\]' would be better.

Sign in to comment.