Why the regexp returns wrong result?
조회 수: 8 (최근 30일)
이전 댓글 표시
Hi,
I use who function and '-regexp' to help me sort data that matches my criteria.
dataList = who(subBatchData,'-regexp','^X.*2');
It works well in other data. While in this data, it returns wrong result. And in the same batch, using '^X.*4'/ '^X.*8' can also get correct results.

So, why it returns wrong answer?
댓글 수: 1
Stephen23
2022년 11월 10일
편집: Stephen23
2022년 11월 10일
Having lots of numbered variable names is usually a sign that something is going wrong:
The MATLAB documentation states "Avoid functions that query the state of MATLAB such as inputname, which, whos, exist(var), and dbstack. Run-time introspection is computationally expensive."
The most important question is: how did you get all of those variables into the workspace? There is probably a more robust and more efficient approach to processing this data.
답변 (1개)
Askic V
2022년 11월 8일
편집: Askic V
2022년 11월 8일
Because you have a match, for example, for the first element:
X2300IF_S1
Did you perhaps want:
'^X.*2$'
so that 2 must be at the end?
댓글 수: 2
Askic V
2022년 11월 8일
If you are satisfied with the answer, please accept the reply as an answer to your question. Thank you.
참고 항목
카테고리
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!