Feeding a vector to a cost function

5 ビュー (過去 30 日間)
Pourya saber
Pourya saber 2011 年 12 月 12 日
Hello
I am wondering how I can feed a random (10,2) matrix to a cost function that get 2 inputs
My cost function is
function [f] = CostFunction(x,y)
f=4*(1-x).^2.*exp(-(x.^2)-(y+1).^2) -15*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) -(1/3)*exp(-(x+1).^2 - y.^2)-1*(2*(x-3).^7 -0.3*(y-4).^5+(y-3).^9).*exp(-(x-3).^2-(y-3).^2);
end
and I have created a random matrix like
vector=rand(10,2)
Now I want to be able to say something like this
CostFunction(Vector)
So I can get the value of Cost function for all those inputs
thank you

採用された回答

Andrei Bobrov
Andrei Bobrov 2011 年 12 月 12 日
function [f] = CostFunction(v)
x = v(:,1);
y = v(:,2);
f=4*(1-x).^2.*exp(-(x.^2)-(y+1).^2) -15*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) -(1/3)*exp(-(x+1).^2 - y.^2)-1*(2*(x-3).^7 -0.3*(y-4).^5+(y-3).^9).*exp(-(x-3).^2-(y-3).^2);
solution
vectors = rand(10,2);
out = CostFunction(vectors);
  1 件のコメント
Pourya saber
Pourya saber 2011 年 12 月 12 日
Thank you andrei, works well.

サインインしてコメントする。

その他の回答 (2 件)

David Young
David Young 2011 年 12 月 12 日
How about
CostFunction(vector(:,1), vector(:,2))
though whether this is useful depends on what you want to achieve.
  1 件のコメント
Pourya saber
Pourya saber 2011 年 12 月 12 日
Yes this one do work as well, thank you

サインインしてコメントする。


bym
bym 2011 年 12 月 12 日
function f = CostFunction(vector) % brackets not necessary
x = vector(:,1);
y = vector(:,2);
f=4*(1-x).^2.*exp(-(x.^2)-(y+1).^2) -15*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) -(1/3)*exp(-(x+1).^2 - y.^2)-1*(2*(x-3).^7 -0.3*(y-4).^5+(y-3).^9).*exp(-(x-3).^2-(y-3).^2);
end
  1 件のコメント
Pourya saber
Pourya saber 2011 年 12 月 12 日
thanks

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by