MATLAB Answers

# Undefined function or variable . which is defined in another workspace.

36 views (last 30 days)
Neel Patel on 16 Feb 2021
Commented: Neel Patel on 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.
##### 2 CommentsShowHide 1 older comment
Neel Patel on 16 Feb 2021
thank you .I'm not getting what actually I can use in my code out of these.

Sign in to comment.

### Accepted Answer

Walter Roberson on 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.
##### 1 CommentShowHide None
Neel Patel on 17 Feb 2021
Thank you.
your given syntax "myfun = @(x) mytest(x,t);" helped me to solve problem.

Sign in to comment.

### More Answers (1)

Ruger28 on 16 Feb 2021
Edited: Ruger28 on 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 CommentsShowHide 1 older comment
Neel Patel on 16 Feb 2021
If you want then I can give you my whole file but that may be take time to understand my perpose.

Sign in to comment.

R2018a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!