Вопрос о присваиваниях и переменных
(* For example *) SP = SparseArray[{},5] or SP = Range[5]
Теперь мы хотим поработать с этим массивом в другой функции:
(* example *) Fun[array_]:= array[[3]] = 100 ; (* set cell №3 equal to 100*)
тогда мы оцениваем
Fun[SP]
ОШИБКА! вывод будет ошибкой типа: Set::write Tag SparseArray in ... is Protected.
Так, как правильно изменить аргументы функции в функции (не чисто функции)? Как создать аналог как Part[]
?
может быть, что-то вроде:
Clear[f]; f[a_]:=Set[Symbol[a][[3]],100]; A =SparseArray[{},5]; f["A"];
Но это снова ошибка