Nested function global variable
    19 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
function T = fun(theta)
global m
m = theta^2;
T = quad(@fun2,0,1)
end
function out = fun2(t)
       out=( (1-m*t^2)*(1-t^2)  );
    end
I have the two functions above. When I call for fun, it does not seem to be working. I am new to Matlab so it would be greatly appreciated if someone could help my understanding. Thanks
0 commentaires
Réponse acceptée
  Thorsten
      
      
 le 15 Oct 2015
        
      Modifié(e) : Thorsten
      
      
 le 15 Oct 2015
  
      Add global m to your fun2; I also used point-wise multiplication and exponentiation to make it work.
function T = fun(theta)
global m
m = theta^2;
T = quad(@fun2,0,1)
end
function out = fun2(t)
global m
out=( (1-m*t.^2).*(1-t.^2)  );
end
Alternatively, you could define fun2 as an anonymous function; note that here fun2 is already a function handle, so you have to pass with without the @ to quad:
function T = fun(theta)
global m
m = theta^2;
fun2 = @(t) (1-m*t.^2).*(1-t.^2)
T = quad(fun2,0,1)
end
Plus de réponses (1)
Voir également
Catégories
				En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


