매트릭스의 각 열에 0이 아닌 원소의 평균을 반환하려고합니다.0이 아닌 요소의 평균 -이 두 시도가 다른 결과를 반환하는 이유는 무엇입니까?
내 첫 번째 시도했다 :
for i = 1:peopleCount;
nonZero2(i) = mean(nonzeros(Y(:,i)));
end
는 정답을 반환 : 내 두 번째 시도하면서
모든 컬럼에 대해 동일한 결과를 반환i = 1:peopleCount;
nonZero1(i,:) = mean(nonzeros(Y(:,i)));
.
그들은 저와 똑같아 보이지만 명백하게는 그렇지 않습니다.
- 첫 번째 시도에서 무엇이 잘못 되었습니까?
- 첫 번째 버전을 어떻게 만들 수 있습니까? 당신이 지적 여러 수단을 기대하지 수 있도록
nonzeros
는 열 벡터를 다시 제공으로
왜 'nonZero = mean (nonzeros (Y))'가 아닌가? ['mean'] (http://www.mathworks.de/help/matlab/ref/mean.html)은 인수가 행렬 인 경우 각 열의 평균을 자동으로 계산합니다. – Lumen
'nonzeros (Y)'는 행렬에있는 모든 0이 아닌 요소를 반환하지만 각 요소가 어떤 열에서 왔는지에 대한 정보를 잃어 버릴 것입니다 (긴 벡터는 모두 0입니다) – jajdoo
첫 번째 시도에서'for'가 있습니까? 'nonzeros (Y (:, i))'가 가변 크기의 행렬을 반환한다고 기대할 수는 없습니다. – Rashid