Актуальным ответом будет использование функции rescale
, представленной в Matlab R2017b. Чтобы нормализовать вектор A
в диапазоне -1:1
, вы должны выполнить:
A = rescale(A, -1, 1);
Вы можете отменить это, предварительно сохранив минимальное и максимальное значения, а затем снова выполнить масштабирование:
maxA = max(A(:));
minA = min(A(:));
A = rescale(A, -1, 1);
% use the normalised A
A = rescale(A, minA, maxA);
-Xmx15G
устанавливает максимальный размер кучи на 15 гигабайт. Java будет выделять только то, что ей нужно, во время работы. Если вы не установите его, будет использоваться только значение по умолчанию. Для получения информации о значениях по умолчанию см. этот пост .
-Xms15G
устанавливает минимальный размер кучи на 15 гигабайт. Это заставляет java выделять 15 гигабайт места в куче перед началом выполнения, независимо от того, нужно это или нет.
Обычно вы можете установить для них соответствующие значения в зависимости от того, как вы настраиваете JVM.
В Java 6, максимальный размер кучи по умолчанию определяется объемом имеющейся системной памяти.
Согласно странице Эргономика сборщика мусора , максимальный размер кучи составляет:
Меньше 1/4 физического памяти или 1ГБ. До J2SE 5.0 максимальный размер кучи по умолчанию составлял 64 МБ.
С помощью переключателя -Xmx
можно изменить максимальный размер кучи. См. Документацию java
- средство запуска приложений Java для получения подробной информации об использовании.
Если вы не установите максимальный размер кучи (с помощью -Xmx
), разве максимальный размер по умолчанию не равен 64 МБ?
Значит, ваше приложение не выдаст ошибку OutOfMemoryError
, если вы его не установите? Я запутался в этом вопросе. Как ваше приложение может работать без этого переключателя?