How to loop the constant in a function?

I'm currently stuck on this most likely rather simple problem, but for some reason I can't get it to work. What I want to do is simply to solve the function f(x,k) for a grid of different k:s. As a very simple example, I'd want to solve
y=(x^2)+k for k=1:1:5
with some kind of for-loop, where the answer thus becomes a vector with 5 different answers. My main track has been to loop the command where I ask Matlab to solve the function, i.e. running a script like
for k=1:1:5
X = fminsearch(@ericr,-2,2)
end
where the function looks like
function [ y ] = ericr(x,k)
y=x^2 + k
end
MATLAB does not like this approach at all, and any help if therefore greatly appreciated!
Best regards,
Eric

 Respuesta aceptada

Eric
Eric el 10 de Oct. de 2013

0 votos

It turned out it was as easy as making sure "k" is a global variable (I forgot to write "global k" in both the script and the function file).

Más respuestas (2)

Jos (10584)
Jos (10584) el 10 de Oct. de 2013

0 votos

What do you exactly mean by " solve the function "? Do you mean that you have a set of points (X,Y), and you want to fit the function
y = A*(X^2)+k
through it by looking for the value of A that minimises the distances between y and Y, given a specific value of k?

2 comentarios

Eric
Eric el 10 de Oct. de 2013
Sorry; that was a bit of a sloppy notation on my part. What I meant by "solve" was to minimize y, i.e. for which x (given the k) do I find a local minimum?
Jos (10584)
Jos (10584) el 10 de Oct. de 2013
that would be at x = 0 for every k ... No need for matlab at all ;-)

Iniciar sesión para comentar.

Youssef  Khmou
Youssef Khmou el 10 de Oct. de 2013
Editada: Youssef Khmou el 10 de Oct. de 2013
Eric, use anonymous functions better,
Here is your example ( its obvious that k is the y solution):
N=10;
for k=1:N
f=@(x) (x.^2)+k;
[a,b]=fminsearch(f,rand);
X(k,1)=a;
X(k,2)=b;
end

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Preguntada:

el 10 de Oct. de 2013

Comentada:

el 10 de Oct. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by