Subscripted assignment dimension mismatch

hi i'm new to Matlab and i am working on a project in genetic algorithm. i'm getting an error saying Subscripted assignment dimension mismatch. can anyone tell me what does this error means. this is my objective function
function f = myfunction(x)
cc= (-138.71*log(x))+1727.1;
sv=0.1*cc;
i=0.06;
LT=15;
f(x) = ((cc*x)-((sv*x)*(1/((1+i)^LT))))*((i*(1+i)^LT)/(((i+1)^LT)-1));

 採用された回答

Walter Roberson
Walter Roberson 2013 年 10 月 14 日

0 投票

Why are you assigning the output to f(x) and not to f alone?
You should be considering whether x can ever be a 2D array. If it can, then your cc would be a 2D array, and then cc*x would be matrix multiplication rather than element-by-element multiplication; the same with sv*x
I note, by the way, that it would be more efficient to calculate (1+i)^LT once and then use the resulting variable three times in your f(x) instead of those several occurrences of the expression.

1 件のコメント

trilochan
trilochan 2013 年 10 月 14 日
thank you very much walter. will keep in touch

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

その他の回答 (0 件)

カテゴリ

質問済み:

2013 年 10 月 14 日

コメント済み:

2013 年 10 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by