How to change mathematical symbols of division (/ to ./) and multiplication(* to .*) in a very long formula obtained by symbolic tool.

2 views (last 30 days)
I am using symbolic toolbox in order to write a formula and differentiation etc. After I have to use my final formula in a function. But in obtained formula by symbolic toolbox, symbol of division and multiplication are / and * respectively. When I put the values of a variable in vector or matrix form, It gives the error. So I have to change the symbols manually for example / (division) to ./ and * (multiply) to .*
Is there any alternate way to solve this problem. Thanks in advance.

Accepted Answer

Mischa Kim
Mischa Kim on 27 Mar 2014
Mahak, copy-paste the formula into a script/function editor and use CTRL+F to replace the strings.

More Answers (1)

Joseph Cheng
Joseph Cheng on 27 Mar 2014
Edited: Joseph Cheng on 27 Mar 2014
to do this you can do something like this.
textEquation=char(symsEquation);
division = [0 strfind(textEquation,'/')];
elbyelDivEquation=[];
for i =1:length(division)-1
elbyelDivEquation = [elbyelDivEquation textEquation(division(i)+1:division(i+1)-1) './'];
end
elbyelDivEquation=syms(elbyelDivEquation);
I did the / substitution quickly so didn't verify if it actually does capture whats between the / and then inserts the other portions. but that should do the trick.
  2 Comments
Joseph Cheng
Joseph Cheng on 27 Mar 2014
if this is a one off then Mischa Kim solution would be easier. However if this is going to happen routinely (say in a program or multiple runs in a script) you may want to automate it.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!