How do I determine which pattern is in a string?
7 次查看(过去 30 天)
显示 更早的评论
Hi,
I have a table imported from Excel which contains the units of measurement within the Variable Names of the table properties, i.e.
MyTable.Properties.VariableNames = 1x 5 cell array
{'Node Number'} {'X Location (m)'} {'Y Location (m)'} {'Z Location (m)'} {'Normal Stress (Pa)'}
I'm trying to determine which units have been used in the Variable Names from a given list, pat = ["(m)", "(cm)", "(mm)", "(in)", "(ft)"] ;
So far I've tried functions such as contains and strcmp but that's only told me which cells of my variable names contain one of the given patterns, rather than which pattern. Is there a way to do this without having to use contains a separate time for each variable.
Thanks,
Nathan.
0 个评论
采纳的回答
Star Strider
2021-3-31
编辑:Star Strider
2021-3-31
I am not certain what result you want.
Try this:
MyTable.Properties.VariableNames = {{'Node Number'} {'X Location (m)'} {'Y Location (m)'} {'Z Location (m)'} {'Normal Stress (Pa)'}};
Outc = regexp([MyTable.Properties.VariableNames{:}], '\(\w*\)','match')
Out = [Outc{:}]
producing:
Out =
1×4 cell array
{'(m)'} {'(m)'} {'(m)'} {'(Pa)'}
EDIT — (31 Mar 2021 at 15:52)
Another option:
Out = extractBetween([MyTable.Properties.VariableNames{2:end}], '(',')')
producing:
Out =
1×4 cell array
{'m'} {'m'} {'m'} {'Pa'}
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!