2015-02-24 3 views
0

Используя консоль Scilab, я прочитал (через imread) изображение для создания матрицы целых чисел 256x256, которую я назвал matrix1. Я хочу знать сумму всех элементов, которые должны быть в области 3 000 000, но она последовательно возвращает номер 227. На другом подобном (хотя и в другом) изображении он возвращает 189, поэтому он что-то делает. Что я делаю не так?В сумме Scilab (matrix1) дает неправильный ответ

sum(matrix1) 

ans. 
= 227 

ответ

1

В итоге я нашел ответ сам. Начальная матрица имела только 8-битные числа точности, и я не понимал, что эта точность будет сохранена при выполнении функции «sum». Все примеры тривиальны с малыми массивами чисел вроде 1, 2, 3, 4, 5 и т. Д. Выполнение суммы (int32 (matrix1)) вернуло правильное значение. Int32 преобразует 8-битную точность в 32-битную точность, а затем сумма сохраняет эту точность.

Смежные вопросы