Вам нужно только hold on
, чтобы каждый сюжет добавлялся к предыдущим. По умолчанию каждый новый сюжет заменяет предыдущий.
Кроме того, я изменил маркер с '.'
на 'o'
для лучшей видимости.
Вы также можете включить drawnow
(и, возможно, подходящий pause
) после каждого plot
, чтобы рисунок был немедленно обновлен. Это полезно, если вы хотите, чтобы линия, обозначенная маркерами, «росла».
f = @(x) (x).^2 - 10;
f_deriv = @(x) 2*x;
x0 = 1;
x_true = sqrt(10);
x_save = (x0);
hold on %%% New line
for jj = 1:20
plot(jj,abs(x_save(jj)-x_true),'ko'); %%% Modified line
x_new = x0 - f(x0)/f_deriv(x0);
x_save(1+jj,1) = x_new;
x0 = x_new;
end
xlim([0 20]);
ylim([0 2.5]);
xticks(0:20);
yticks(0:0.1:2.5);
Короткий ответ: Вы не можете.
ответ Long:
Все, что Вы имеете, является информацией в заголовке Агента пользователя HTTP, который обычно содержит имя ОС и версию.
Обычно, браузеры, работающие на Mac OS и Linux, отправляют достаточно информации для идентификации точной ОС. Например, вот мой заголовок Агента пользователя:
Mozilla/5.0 (X11; U; Linux x86_64; en-США; rv:1.9.0.7) Геккон/2009030423 Ubuntu/8.10 (бесстрашный) Firefox/3.0.7
Вы видите, что я выполняю Ubuntu 8.10 Бесстрашный Козерог.
И вот то, о чем Firefox и бета Safari 4 сообщают относительно моего MacBook Pro:
Mozilla/5.0 (Macintosh; U; OS X Intel Mac 10.5; en-США; rv:1.9.0.7) Firefox/3.0.7 Геккона/2009021906
Mozilla/5.0 (Macintosh; U; OS X Intel Mac 10_5_6; en-us), AppleWebKit/528.16 (KHTML, как Геккон) Safari/528.16 Версии/4.0
браузеры Windows, с другой стороны, обычно только сообщают о версии ОС а не определенном пакете (Pro, Бизнес, и т.д.):
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-США; rv:x.x.x) геккон/20041107 Firefox/x.x
В Классическом ASP и использовании ASP.NET
Request.ServerVariables("HTTP_USER_AGENT")
Это работает лучше всего, так как это не интерпретировало код, это работает на сервере.
After some googling I found this code and it seems to be working ok,(doesn't detect Unix though)
<?php
$OSList = array
(
// Match user agent string with operating systems
'Windows 3.11' => 'Win16',
'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)',
'Windows 98' => '(Windows 98)|(Win98)',
'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
'Windows Server 2003' => '(Windows NT 5.2)',
'Windows Vista' => '(Windows NT 6.0)',
'Windows 7' => '(Windows NT 7.0)',
'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
'Windows ME' => 'Windows ME',
'Open BSD' => 'OpenBSD',
'Sun OS' => 'SunOS',
'Linux' => '(Linux)|(X11)',
'Mac OS' => '(Mac_PowerPC)|(Macintosh)',
'QNX' => 'QNX',
'BeOS' => 'BeOS',
'OS/2' => 'OS/2',
'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)'
);
// Loop through the array of user agents and matching operating systems
foreach($OSList as $CurrOS=>$Match)
{
// Find a match
if (eregi($Match, $_SERVER['HTTP_USER_AGENT']))
{
// We found the correct match
break;
}
}
// You are using ...
echo "You are using ".$CurrOS;
?>
Я не думаю, что Вы будете в состоянии дифференцировать различные версии Vista, но необходимо быть в состоянии получить ОС от навигатор свойство платформы объекта. Необходимо будет, вероятно, проанализировать его, тем не менее, или дифференцироваться на основе, он - содержание.
<script type="text/javascript">
alert( navigator.platform );
</script>
Видят www.w3schools.com учебные руководства для пример показ, как получить свойства всего навигатора.
РЕДАКТИРОВАНИЕ :
Для получения точной версии можно быть в состоянии разработать элемент управления ActiveX (только Windows) или Апплет Java и использовать java.lang. Системный объект для просмотра свойств существующей системы. Можно быть в состоянии получить достаточно информации от браузера для систем не-Windows и использовать управление только для систем Windows. Я не попробовал это, таким образом, необходимо было бы экспериментировать, чтобы видеть, будет ли это работать. Я должен полагать, что элемент управления ActiveX Microsoft для Microsoft Update в состоянии обнаружить точную версию системы и установленное программное обеспечение для нее для работы.
Необходимо действительно постараться не делать что-то как этот, если это не абсолютно необходимо для функциональности веб-приложения.
знать, что:
Не все запросы могут прибыть из клиентской работы окон.
Не все запросы могут прибыть от клиента, который поддерживает JavaScript.
заголовок агента пользователя не может присутствовать в запросе.
то, Что находится в заголовке агента пользователя, может вводить в заблуждение.
А хорошо разработал веб-приложение, должен обеспечить полное содержание и функциональность независимо от того, что находится в заголовке агента пользователя запроса или если поддержки клиентов JavaScript или любое другое клиентское расширение.
Поскольку другие уже сказали, нет, не надежно.
, Который является причиной, что, например, jQuery переключился на возможности браузера система (из-за отсутствия лучшего слова) вместо осуществляющей сниффинг браузера системы для itВґs технических возможностей.