Undefined function or variable . which is defined in another workspace.
    7 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Neel Patel
 il 16 Feb 2021
  
    
    
    
    
    Commentato: Neel Patel
 il 17 Feb 2021
            Hello,
 I have an problem and I made one code to solve that but I got an error.
Actually I have an function which I want to run in loop so I made function file and then make anouther programme to call that function but "for" loop variable is making error.
My code is somewhat complecated so I write here replica of that for example by which you all can have idea.
My function file code is:
function y=mytest(x)
        y(t)=x(t)+1;
y=y(t);
end
and my programme file code is : 
b=1:10;
myfun=@mytest;
for t=1:1:max(b)
    a(t)=myfun(b(t));
end
I am getting thi error:
Undefined function or variable 't'.
Error in mytest (line 2)
        y(t)=x(t)+1;
Error in myrun (line 4)
    a(t)=myfun(x(t));
 Please help me or suggest me what to do.
Thank you.
Risposta accettata
  Walter Roberson
      
      
 il 16 Feb 2021
        b=1:10;
for t=1:1:max(b)
    myfun = @(x) mytest(x,t);   %<--- parameterized
    a(t)=myfun(b(t));
end
function y=mytest(x,t)         %<--- now receives t as well
   y(t)=x(t)+1;
   y=y(t);
end
This will fail, of course. You are passing the scalar b(t) into mytest, but you are expecting to be able to index it at t.
Più risposte (1)
  Ruger28
      
 il 16 Feb 2021
        
      Modificato: Ruger28
      
 il 16 Feb 2021
  
      You pass in a value that the function sees as x, but you are trying to use t. You need to pass your b(t) value AND your t value if you need them, but it looks like you just want to add one to your value.
b=1:10;
myfun=@mytest;
for t=1:1:max(b)
    a(t)=myfun(b(t));
end
function y=mytest(x)
        y=x+1;
       % y(t)=x(t)+1;
       % y=y(t);
end
2 Commenti
Vedere anche
Categorie
				Scopri di più su Logical in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!