How do i average all result in total loop,if some result in some of loop are NaN
조회 수: 1 (최근 30일)
이전 댓글 표시
Using matlab R2015a
I want to sum lots of numbers, and each number is the result of optimal problem in each time of loop,however in these result,some of them are NaN,if i just want to sum them,not average them,then I can just use the code below
c=0
for k=1:10
******
%optimal problem calculating code(code omit)
*******
c=c+nansum(optimal problem result)%c is the summation of all optimal problem result
end
but if I want to average these results,i mean average c, I can't just replace the "nansum" with "nanmean".because the size of optimal problem is 1 by 1 value in every loops,not a vector.so the result of nansum and nanmean will be the same.
Also,because I didn't know the amount of NaN result,so neither can I use the definition of average,total value/amount , so I want to ask if i want to average them,how do I write the code?
If you have some method ,and want to use my optimal problem calculating code to test ,please tell me,i will edit the question
댓글 수: 0
채택된 답변
Jos (10584)
2019년 3월 26일
Store each result in an array and average after the loop. An example:
c = nan(1,10) ; % pre-allocation for speed
for k = 1:10
c(k) = function_returning_results_of_optimal_problem
end
avC = nanmean(c) % mean ignoring nans
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 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!