can anyone suggest me a command that talks about how matlab performed an arithmetic operation (its steps to give us the final result) ?
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    diadalina
 el 25 de Sept. de 2018
  
    
    
    
    
    Comentada: Bruno Luong
      
      
 el 30 de Sept. de 2018
            such a given operation (1/2+1/3)/456*789
1 comentario
  Steven Lord
    
      
 el 30 de Sept. de 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?
Respuesta aceptada
  Stephen23
      
      
 el 25 de Sept. de 2018
        I suspect that you might mean this:
13 comentarios
  Stephen23
      
      
 el 30 de Sept. de 2018
				
      Editada: Stephen23
      
      
 el 30 de Sept. de 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:
Más respuestas (2)
  Bruno Luong
      
      
 el 26 de Sept. de 2018
        
      Editada: Bruno Luong
      
      
 el 26 de Sept. de 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 comentarios
  James Tursa
      
      
 el 30 de Sept. de 2018
				So, getting caught up on this thread. My comments were general comments about operator precedence, not about how MATLAB decides how to evaluate an expression, particularly one involving function calls. Bruno makes that point as well in his Answer. This entire thread about which order MATLAB evaluates functions in an expression is a related topic but is not the same thing as operator precedence, and my comments should not be taken to imply anything about which order function calls are evaluated.
  Bruno Luong
      
      
 el 30 de Sept. de 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.
  Bruno Luong
      
      
 el 26 de Sept. de 2018
        
      Editada: Bruno Luong
      
      
 el 26 de Sept. de 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.
1 comentario
Ver también
Categorías
				Más información sobre Exponents and Logarithms en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





