Remove Redundant Parentheses from String Expression

String contains a long expression. Part of it is:
'...+(G0*(G1-G2+G3))+((G4*(G5+G6)))-(((G7+G8))*((G9+G10+G11)))+...'
The redundant parentheses could be removed and the expression should look like:
'...+G0*(G1-G2+G3)+G4*(G5+G6)-(G7+G8)*(G9+G10+G11)+...'
Is there a simple Matlab script to do this?

5 件のコメント

dpb
dpb 2016 年 6 月 7 日
" redundant parentheses must be removed"
Why is this a must?
Where did they come from; perhaps the place to look is in the tool that generated them instead of trying to fixup the result.
I suppose there's a parser somewhere, but it would have to be smart enough to determine which are and which aren't actually redundant which isn't totally trivial exercise in general.
per isakson
per isakson 2016 年 6 月 8 日
S H
S H 2016 年 6 月 8 日
The mparser link provided by isakson does not work. The link might be temporarily or permanently out of reach.
Walter Roberson
Walter Roberson 2016 年 6 月 8 日
https://github.com/ewiger/decade/tree/master/lib/mparser
S H
S H 2016 年 6 月 10 日
Thank you. I will look into https://github.com/ link.

サインインしてコメントする。

回答 (1 件)

Image Analyst
Image Analyst 2016 年 6 月 8 日

0 投票

Recall that Azzi answered this, or something pretty much similar, and you accepted his answer in http://www.mathworks.com/matlabcentral/answers/287777#answer_224489

4 件のコメント

S H
S H 2016 年 6 月 8 日
The link you referred to is asking different question.
S H
S H 2016 年 6 月 8 日
Image Analyst, you should post as comment instead of answer.
Star Strider
Star Strider 2016 年 6 月 10 日
@S H —
Don’t get cheeky.
Revise the documentation for the Symbolic Math Toolbox simplify function.
S H
S H 2016 年 6 月 10 日
編集済み: S H 2016 年 6 月 10 日
Yes symbolic tool fixes this but it also shuffles all the terms and tries to sort them based on variable names. That is why I want to process this expression as string only.
This question takes finding matching parentheses one step further because repetition must also be accounted.
How to solve this includes the following steps:
1. write an algorithm to find matching parentheses for any existing pair
2. See if there is any pair with more than one repetition and then eliminate all redundants

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

質問済み:

S H
2016 年 6 月 7 日

編集済み:

S H
2016 年 6 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by