Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Вот то, как я смог сделать это.
MATLAB полярный график (при рассмотрении доступных опций Handle Graphics) не имеет ничего как xlim или ylim. Однако я понял, что первая вещь вывелась на печать, устанавливает диапазон, таким образом, я смог вывести функцию на печать с диапазоном радиуса [-.5.5] на [-1 1] график следующим образом:
theta = linspace(0,2*pi,100);
r = sin(2*theta) .* cos(2*theta);
r_max = 1;
h_fake = polar(theta,r_max*ones(size(theta)));
hold on;
h = polar(theta, r);
set(h_fake, 'Visible', 'Off');
, Который не выглядит очень хорошим и надо надеяться существует лучший способ сделать это, но это работает.
у меня это сработало ... я хотел, чтобы диапазон радиусов был равен 30, поэтому Сначала я нарисовал это
polar(0,30,'-k')
hold on
, а затем нанес то, что меня действительно интересовало. Эта первая нанесенная точка скрыта за метками сетки. просто не забудьте включить
hold off
после последней команды построения.
На случай, если кто-то еще столкнется с этим, вот решение :
Как Скотти Т. и gnovice ] отметил, что Matlab в основном использует полярную функцию в качестве интерфейса для стандартных графиков, но с большим количеством закулисного форматирования, чтобы он выглядел полярным. Посмотрите на значения свойств XLim и YLim полярного графика, и вы заметите, что они буквально представляют собой пределы x и y вашего графика в декартовых координатах. Итак, чтобы установить ограничение радиуса, используйте xlim и ylim, или ось, и будьте осторожны с установленными вами значениями:
rlim = 10;
axis([-1 1 -1 1]*rlim);
... вот и все. Удачного Матлаббинга :)