can anyone suggest me a command that talks about how matlab performed an arithmetic operation (its steps to give us the final result) ?

1 view (last 30 days)
such a given operation (1/2+1/3)/456*789
  1 Comment
Steven Lord
Steven Lord on 30 Sep 2018
People have commented about potential ways to do what you've asked, but no one has yet asked why you want to know this information?

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 25 Sep 2018
  13 Comments
Stephen23
Stephen23 on 30 Sep 2018
Edited: Stephen23 on 30 Sep 2018
"if i want to use the the debugging tools.for this operation how can i do this"
I don't know if it is possible to do exactly what you want. I wrote that the closest solution might be to use the debugging tools (in particular the step in command). But how useful that would be depends on what commands in your code are functions and which ones are compiled/inbuilt. But there is nothing stopping you from giving it a try:

Sign in to comment.

More Answers (2)

Bruno Luong
Bruno Luong on 26 Sep 2018
Edited: Bruno Luong on 26 Sep 2018
Here is an idea, replace the number of your expression by functions (that return a scalar) and print out the order
% (1/2+0/3)/456*789
(f(1)/f(2)+f(0)/f(3))/f(456)*f(789)
function x = f(x)
disp(x)
end
When run it you'll get
>> printorder
1
2
0
3
456
789
ans =
0.8651
Insert the operator(s) (there is only one right way to do it) you'll get the polish-reverse notation of the expression
1; 2; /; 0; 3; /; +; 456; /; 789; *
Meaning the expected specified evaluation order we told you.
  8 Comments
Bruno Luong
Bruno Luong on 30 Sep 2018
From the order of the evaluation of the operands one can infer the order of the operations. Actually I have double checked the logic by hacking the operations as well to display something when it's invoked. The result just match well all the cases I tested with what I have expected and the documentation.

Sign in to comment.


Bruno Luong
Bruno Luong on 26 Sep 2018
Edited: Bruno Luong on 26 Sep 2018
f(3)^f(4) would have to be done first
That's the case, the power is the first to be performed (among operators), but it's not saying the operands f(3) and f(4) are evaluated first.

Community Treasure Hunt

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

Start Hunting!

Translated by