# How to refer to parameter from function in the loop.

42 views (last 30 days)
Michael on 2 Jun 2015
Commented: Michael on 2 Jun 2015
I've got such problem. Whole code is compiling at my teachers computer, whereas on mine it says that: Undefined function or method 'y' for input arguments of type 'double' [Just the part of the code to which it refers]:
for i=round(length(t)/2):length(t)-1
if y(i,1)<-20 && y(i+1,1)>-20
t20=[t20,t(i)];
end
y is used in my func.m file. And now is the question: how to refer to it in my loop? I got no idea why it works there and not on my Matlab.
##### 2 CommentsShowHide 1 older comment
Muhammad Usman Saleem on 2 Jun 2015
to me this statement if y(i,1)<-20 && y(i+1,1)>-20 % is used as check means when (i,1)<-20 AND y(i+1,1)>-2 then do with t20???

Salaheddin Hosseinzadeh on 2 Jun 2015
Edited: Salaheddin Hosseinzadeh on 2 Jun 2015
Dear Michael,
You used y in your myfunc.m function, so it is not recognized in another function if you don't return as an output.
function y = myfunction(a,b,c)
% so this is your y function
% somewhere at the end of your function you have to assign y
% for example
y = a + b;
end
So later in another code, when you're using myfunction you get y back
% this is not myfunction (it's yourFunction) lol
function yourFunction(e,f,g)
% somewhere in this function you're calling myfunction
y = myfunction(a,b,c)
for i=round(length(t)/2):length(t)-1
if y(i,1)<-20 && y(i+1,1)>-20
t20=[t20,t(i)];
end
As I understood this is your problem, if I'm wrong please explain more ;)
Michael on 2 Jun 2015
Yep. That's what I needed to have explained. Basics but sometimes (I code once, or twice a semester for projects) I need that guidance.