Как передать переменную со списком в команде Outer в mathematica - PullRequest
0 голосов
/ 15 сентября 2011

Рассмотрим следующий фрагмент кода Mathematica:

a := {1, 2, 3};

f[n_, a_] := Sum[a[[j]], {j, 1, n}];

Outer[f, {3}, (a)]

Цель состоит в том, чтобы просто оценить f[3,a].Но я получаю следующие сообщения об ошибках:

During evaluation of In[16]:= Part::partd: Part specification 1[[1]] is longer 
 than depth of object. >>

During evaluation of In[16]:= Part::partd: Part specification 1[[2]] is longer 
 than depth of object. >>

During evaluation of In[16]:= Part::partd: Part specification 1[[3]] is longer 
 than depth of object. >>

During evaluation of In[16]:= General::stop: Further output of Part::partd will 
be suppressed during this calculation. >>

Out[16]= {{1[[1]] + 1[[2]] + 1[[3]], 2[[1]] + 2[[2]] + 2[[3]], 
   3[[1]] + 3[[2]] + 3[[3]]}}

Таким образом, очевидно, что Outer разделяет входную переменную списка и обрабатывает ее компоненты отдельно.

У меня вопрос, как я могу связать компонентывместе в окружении Outer?Большое спасибо!

1 Ответ

4 голосов
/ 15 сентября 2011

Вы можете сделать это:

Outer[f, {3}, {a}, 1, 1]

(*    {{6}}   *)

В зависимости от реальной проблемы, которую вы решаете, могут быть более совершенные способы (по Outer), использующие Map или аналогичные.

...