Я наконец смог воспроизвести это сообщение, которое я получаю время от времени.
Это на V8.04, на Windows 7.
Испытывая вещи, я обнаружил, как заставить Mathematica генерировать вышеупомянутое сообщение, когда я открываю блокнот с Манипулировать в нем.
Первый экран с сообщением об ошибке:

Теперь я нажимаю «включить динамику», и все выглядит хорошо. Но каждый раз, когда я снова открываю блокнот, я снова получаю сообщение. (Необходимо закрыть M и снова запустить, а затем открыть записную книжку, чтобы увидеть сообщение).
Таким образом, я не понимаю это предупреждающее сообщение, и почему оно появляется, и что мне нужно изменить в коде, чтобы удалить его.
Код для его генерации:
Manipulate[
DynamicModule[{p},
p["x"] = 0;
Row[{Dynamic[
Refresh[p["x"]++; Row[{"p[x]=", p["x"]}],
TrackedSymbols -> {n}]]}]
],
Button["update counter", n++],
{{n,0}, None}
]
Вышеприведенное написано на собственной записной книжке, в записной книжке больше ничего нет.
Я закрываю M, затем запускаю его, затем открываю записную книжку, и я вижу вышеупомянутое сообщение.
Теперь я сначала подумал, что для удаления сообщения мне нужно изменить p ["x"] на p [x], поэтому я закрыл вышеуказанную записную книжку и создал новую записную книжку с таким кодом:
Manipulate[
DynamicModule[{p},
p = 0;
Row[{Dynamic[Refresh[p++; Row[{"p=", p}], TrackedSymbols -> {n}]]}]
],
Button["update counter", n++],
{{n, 0}, None}
]
Затем закрыл M, снова запустил и открыл вышеупомянутую записную книжку,
и теперь я не не увидел предупреждающее сообщение. Но когда я повторил процесс, я увидел, что возвращается та же ошибка.
(я отправил этот вопрос в группу по математике, но это медленно, и мой пост там даже не появился, но в этом посте я сказал, что ошибка исчезла, когда я изменил p ["x"] на p [x], потому что сначала это действительно было, но когда я позже попробовал, пришло сообщение, которое я не понимаю почему)
p ["x"] является индексированным объектом, как описано на этой странице:
http://reference.wolfram.com/mathematica/tutorial/MakingDefinitionsForIndexedObjects.html
Вопрос в том, что в приведенном выше коде заставляет это предупреждение появляться? Я что-то не так пишу в приведенном выше примере?
Код работает нормально после включения динамики. Кстати, я открываю этот ноутбук из той же папки, я открываю все остальные мои ноутбуки, ничего не изменилось, и это на домашнем ПК, нет общей сетевой папки и ничего необычного.
Вот ссылка на страницу безопасности ноутбука
http://reference.wolfram.com/mathematica/tutorial/NotebookSecurity.html
Я не вижу в вышесказанном ничего, связанного с тем, что я делаю. Все, что я могу сказать, это связано с использованием DynamicModule [] внутри Manipulate, который сам по себе является DynamicModule. Но я не понимаю этого достаточно хорошо, чтобы понять, почему это проблема.
Обновление 1
Я не вижу, как это имеет отношение к пути. Я могу устранить ошибку, просто закомментировав внутреннюю динамику следующим образом:
Manipulate[
(*
DynamicModule[{p},
p["x"]=0;
Row[{Dynamic[Refresh[p["x"]++;Row[{"p[x]=",p["x"]}],TrackedSymbols-> \
{n}]]}]
],
*)
n,
Button["update counter", n++],
{{n, 0}, None}
]
Сохраните записную книжку, закройте M, запустите M, откройте записную книжку. Ошибка ушла.
Итак, это в коде.
Обновление 2
Пытаться воспроизвести то, что Йода сообщил в своем ответе, я не могу.
- сделать новый блокнот, типа
Dynamic@DateString[]
- ENTER для оценки.
- SAVE
- закрыть M
- открыто М
- открыть блокнот
- без ошибок

Обновление 21 декабря 2001 г.
В Математической группе Джон Фульц был достаточно любезен, чтобы ответить на мой пост, я не думаю, что он будет возражать, если я опубликую его ответ здесь, чтобы другие могли его увидеть
> > So, why is using p["x"] causing the security warning message?
That is a bug, which has already been fixed in development sources.
John Fultz
User Interface Group
Wolfram Research, Inc.
Извините, что у меня нет ссылки для включения в его ответ, я не смог найти ссылку в Google сейчас. Я использую Thunderbird для чтения новостных групп.
Должен ли теперь этот вопрос оставаться открытым? Или это должно быть закрыто? Если мне нужно закрыть его, я могу принять один из ответов, чтобы он был закрыт.