getting 'output argument' error when calling function
이전 댓글 표시
I have written this below function :
function [winner_index] = Auction(match_fit,match_index,cbid)
bidmax = 0;
m = match_fit;
w = match_index;
for i = 1:length(m)
bid(i) = cbid*m(i,:);
effectiveBid (i)= bid(i)+randn;
if effectiveBid(i) > bidmax
winner_index = w(i);
bidmax = effectiveBid(i);
end
end
end
Previously when I run this some times it is ok, sometime it was giving the below error " Output argument "winner_index" (and maybe others) not assigned during call to "Auction".
and now I am calling this function inside a loop. It is continuously showing the same error. I don't know why :(
[SL: edited to apply code formatting. Brinta, in the future please use the {}Code button to format your code.]
채택된 답변
추가 답변 (1개)
Jan
2018년 3월 22일
0 개 추천
If match_fit is empty or effectiveBid(i) > bidmax is never true, the variable winner_index is not created. The output of randn can be negative.
What do you want to define as output instead in this case?
Note that length(m) is not safe, because it replies the longest dimension. Better use: size(m, 1).
카테고리
도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!