2015-10-08 7 views
0
  • Здравствуйте, я хочу сформулировать регулярное выражение, выдаваемого инструкции Matlab solve, чтобы выразить арифметическую операцию в латексных Symboles в качестве примера, который следует:

(a+b^(c-d))/b ->\frac{(a+b^{(c-d)})}{b}Regex, чтобы выразить операцию в латексе

разрешены входные модели:

/+ - *^\ ш \ S()

позволили выход модели:

+ - *^\ ш \ s() {}

  • о разделении, This это то, что я пытался до сих пор

Выловленные выражения хранятся в переменных {деление, числитель, знаменатель}

  • о экспоненциации, я попытался v This

К сожалению, я нашел мой сам столкнулся с парой проблем, одна из них является то, что моя версия MATLAB оленья кожа принимает этот вид рекурсивного регулярного выражения. но я мог бы реализовать его в качестве итеративного функции:

a='^(dfdf ^(sdf))';b=' ';while(~strcmp(a,b))b=a;a=regexprep(a, '\^\((?<betweenbrackets>.*)\)', '\^{$<betweenbrackets>}');end 

Не могли бы вы мне совет все равно еще, чтобы сделать это как для потенцирования и деления?

ответ

3

Если у вас есть Символический Math Toolbox, вы можете просто сказать

latex(sym('(a+b^(c-d))/b')) 

ans = 

\frac{a + b^{c - d}}{b} 
+0

работы !!!! Спасибо – Abra001