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

 Réponse acceptée

Adam
Adam le 18 Nov 2014
Modifié(e) : Adam le 18 Nov 2014
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 commentaires

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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Question posée :

Kim
le 18 Nov 2014

Commenté :

le 18 Nov 2014

Community Treasure Hunt

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

Start Hunting!

Translated by