How to recognize multiplication with out *
이전 댓글 표시
Hello!!
I want to write a code where you can input a string of a polynomial for instance '2x+3' and matlab returns the string as '2*x+3'. The user can input any string of a polynomial and matlab adds the * where needed.
I was thinking of possibly using a for loop (length of the string) where it passes through each indices and use isletter or isnumeric and if I get a numeric followed by a letter The code addes a * in between.
Can someone help me implement this or have a better way of doing so. Thanks a lot!
댓글 수: 3
James Tursa
2015년 3월 19일
편집: James Tursa
2015년 3월 19일
Will there be expressions like 2/3x in the strings? If so, how should they be interpreted? As (2/3)*x or as 2/(3*x)? Will there be parentheses in the expressions?
John D'Errico
2015년 3월 19일
And of course, how would it deal with the number 3e2, as this is a perfectly legal way of writing the number 300.
Dr. ARK
2015년 3월 19일
채택된 답변
추가 답변 (1개)
Assuming you just want to insert a '*' between any number followed by any letter (that is ignore problems like brackets and 3e2 notation):
expression = '2x + 3 - 5y';
newexpression = regexprep(expression, '([0-9])([a-zA-Z])', '$1*$2')
edit: Actually, the following will not insert a '*' when the letter is followed by another number so will cope with 'e' notation:
expression = '2x + 3e5 - 1e2y';
newexpression = regexprep(expression, '([0-9])([a-zA-Z])(?![0-9])', '$1*$2')
카테고리
도움말 센터 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!