Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

The mean in the accumarray exceeds the maximum value in the array, which it shouldn't.

조회 수: 1 (최근 30일)
Aristo
Aristo 2019년 3월 5일
마감: MATLAB Answer Bot 2021년 8월 20일
Please find the link for the code: THE LINK
In this particular code, the mean exceeds the maximum value in the array, which it shouldn't. What is the other approach? For example i have values between [0 1]. But the mean values are sometimes 1.5.
  댓글 수: 1
Matt J
Matt J 2019년 3월 5일
편집: Matt J 2019년 3월 5일
Please attach the data which is producing this result in a .mat file. Also, please post the code you are actually running to generate the result, not the summary of it at the link.

답변 (1개)

Steven Lord
Steven Lord 2019년 3월 5일
I am not able to reproduce this behavior on my Windows machine running release R2018b. Can you show the result of this code?
rng default
npt = 10000;
A = [rand(npt,1)*180-90 rand(npt,1)*360-180 rand(npt,1)];
latbin = -90:5:90;
lonbin = -180:5:180;
nlat = length(latbin);
nlon = length(lonbin);
ilat = discretize(A(:,1), latbin);
ilon = discretize(A(:,2), lonbin);
idx = sub2ind([nlat nlon], ilat, ilon);
altg = accumarray(idx, A(:,3), [nlat*nlon 1], @(x) mean(x), NaN);
anyValuesInAltgGreaterThan1 = any(altg(:) > 1)
maximumValueInAltg = max(altg(:))
If that code is not sufficient to reproduce the behavior, please post code with which you can along with information about which OS you're using and which release of MATLAB.
And just because I'm suspicious, can you post the output of this command as well?
which -all mean

이 질문은 마감되었습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by