请问&/@ 是什么意思
mathematica吧
全部回复
仅看楼主
level 5
请问&/@ 是什么意思
2020年03月13日 05点03分 1
level 5
方便解释下Graphics3D[gr_, opts___] :> Graphics3D[{gr, Scale[gr, #, {-1, -1, -1}] & /@ (1 + 10^-3 - IdentityMatrix[3])}, opts]的意思吗
2020年03月13日 05点03分 2
@Wonderlands09 (1 + 10^-3 - IdentityMatrix[3])},这个呢?为啥要加个千分之一再减去单位矩阵?
2020年03月13日 14点03分
回复: 你不妨把此部分运算一下看一下结果,它就是:{{0.001,1.001,1.001},{1.001,0.001,1.001},{1.001,1.001,0.001}}。这个就是3D图形在x,y,z三个方向的压缩值(参见 Scale 函数的用法)。第一个 {0.001,1.001,1.001} 表示在x轴方向压缩到原先的0.001倍,而在其它两个方向上为大约1倍。
2020年03月13日 15点03分
必须搞明白Sclae函数的用法。看你是初学,所以你问的这个些代码可能过难了点,搞不懂也在情理之中。
2020年03月13日 15点03分
level 1
/@ 是将此符号前面的函数分别作用到此符号后面的列表(也可以说别的东西)的每一个元素。那个&是纯函数的末尾符号,比如 (#/2)& 就是把将某个值除以二的纯函数。
不妨查一下帮助吧。
2020年03月13日 10点03分 3
修改:... 就是将被作用对象除以二的纯函数
2020年03月13日 10点03分
@Wonderlands09 恩,谢谢
2020年03月13日 14点03分
吧务
level 10
在帮助文档搜索即可得到答案
2020年03月13日 11点03分 4
我查到了,一个是纯函数的符号,一个是Apply 函数
2020年03月13日 15点03分
level 1
完整的代码是这个:
Plot3D[Sin[x y],{x,0,3},{y,0,3},PlotRange->All]/.Graphics3D[gr_,opts___]:>Graphics3D[{gr,Scale[gr,#,{-1,-1,-1}]&/@(1+10^-3-IdentityMatrix[3])},opts]
2020年03月13日 15点03分 5
1