How can I use arrayfun and integral as anonymous function?
    9 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    work wolf
 am 10 Jun. 2021
  
    
    
    
    
    Kommentiert: work wolf
 am 11 Jun. 2021
            t=0:0.1:1;
v=0.2;
fun1=@(s,t) s .* exp(-s).* ( (t-s) .^(v-1) ) ; 
%gex= @(t) arrayfun(@(t) integral (@(s) fun1(s,t) ,0,t), t);
if t==0
    gex= @(t) 0;
else
    gex= @(t) arrayfun(@(t) integral (@(s) fun1(s,t) ,0,t), t);
end
How do I exclude input 
t=0
  and make it into a new value inside the matrix namely, gex, i.e, gives 
gex(t)
 as one matrix and set the value of 
gex(t(1))=0
 in same time?
2 Kommentare
Akzeptierte Antwort
  David Hill
      
      
 am 10 Jun. 2021
        I am doing a little guessing. I assume you want to integrate with respect to s (0,t) then look at t from 0:0.1:1.
syms s t
v=0.2;
fun=s*exp(-s)*(t-s)^(v-1);
fun1=int(fun,s,0,t);
n=0:.1:1;
for k=1:length(n)
    b(k)=vpa(subs(fun1,t,n(k)));
end
3 Kommentare
  David Hill
      
      
 am 10 Jun. 2021
				Works, but does not get exact answers. Answers good for several decimal places.
v=0.2;
t=0:.1:1;
fun1=zeros(1,length(t));
for k=2:length(t)
 fun=@(s)s.*exp(-s).*(t(k)-s).^(v-1);
 fun1(k)=integral(fun,0,t(k));
end
Weitere Antworten (1)
  Kapil Gupta
      
 am 10 Jun. 2021
        I assume you want to know how you can use integral function as anonymous function. The following MATLAB Answers link has a similar query, you can check this out:
Siehe auch
Kategorien
				Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


