Storing function and variable values as the function runs

I know this must be very simple but please help if you can! I have the following code. I am trying to find out values of p for every possible value of r and c. I would also like to store the function value along with the variable values in a matrix. I can't seem to do any of it and I'm fairly sure what I am generating isn't right. Please help!
function p= penalty(r,c) %r =current point value %c= current penalty
p= ((r/150).^-2)*c; end
%find values of p for varying values of r and c clear f; for k=1 for i=1 while k<200 while i<200
f(k, i)=penalty(k,i);
k=k+1
i=i+1
end
end
end
end

 采纳的回答

for k=1:200
for i=1:200
f(k, i)=penalty(k,i);
end
end
is the simplest change to your code to work using loops.
Don't mix for and while together. For is a loop, you don't want while in there as well as for.
If you want a vectorised version, change your function to:
function p= penalty(r,c) %r =current point value %c= current penalty
p = ((r'/150).^-2) * c;
end
and the call to simply:
k = 1:200;
i = 1:200;
f = penalty(k,i);

2 个评论

Thank you so much. I am so new to code writing and finding it hard to implement even simple mathematics!
Note I just edited that answer to include the vectorised version.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

提问:

Kim
2014-11-18

评论:

2014-11-18

Community Treasure Hunt

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

Start Hunting!

Translated by