"contains" with multiple conditions

57 Ansichten (letzte 30 Tage)
Sim
Sim am 16 Dez. 2021
Kommentiert: Sim am 16 Dez. 2021
Hi, I have the following code
A = "159 ( 51,1%) 13 (4,2% ) 139 (44,7%)";
A = textscan(A,'%s','Delimiter',' ')';
A{:}(contains(A{:},'(')) = [];
A{:}(contains(A{:},')')) = [];
A{:}(contains(A{:},'%')) = [];
which removes all the brackets and the numbers between the brackets (in this case they are percentages):
% Result after "textscan" (just typing A{:})
8×1 cell array
{'159' }
{'(' }
{'51,1%)' }
{'13' }
{'(4,2%' }
{')' }
{'139' }
{'(44,7%)'}
% Result after all the "contains" (just typing A{:})
3×1 cell array
{'159'}
{'13' }
{'139'}
However, I would like to use one single command for contains with multiple conditions. Would it be possible?
Something like this:
% Input
A{:}(contains(A{:},['(' OR ')' OR '%')) = [];
% Desired output
A = "159 13 139";

Akzeptierte Antwort

Matt J
Matt J am 16 Dez. 2021
Bearbeitet: Matt J am 16 Dez. 2021
A = "159 ( 51,1%) 13 (4,2% ) 139 (44,7%)";
A=eraseBetween(A,"(", ")")
A = "159 () 13 () 139 ()"
cellstr( extract(A,digitsPattern) )
ans = 3×1 cell array
{'159'} {'13' } {'139'}
  2 Kommentare
Sim
Sim am 16 Dez. 2021
Many thanks @Matt J .... but actually I would need to remove the numbers among the brackets..
My desired output would be this one:
% Desired output
A = "159 13 139";
Sim
Sim am 16 Dez. 2021
Cool solution @Matt J, many thanks!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Matt J
Matt J am 16 Dez. 2021
Bearbeitet: Matt J am 16 Dez. 2021
A = "159 ( 51,1%) 13 (4,2% ) 139 (44,7%)";
A = textscan(A,'%s','Delimiter',' ')';
A=vertcat(A{:});
A( contains(A,{'(',')','%'}) )=[]
A = 3×1 cell array
{'159'} {'13' } {'139'}
  1 Kommentar
Sim
Sim am 16 Dez. 2021
Oh Great!! This is exactly what I was thinking about/looking for! The multiple conditions in "contains" are given by curly brackets..!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by