Syntax 数学符号与符号
我对Mathematica比较陌生,虽然我熟悉很多编码约定,但我不知道Mathematica在命令中使用@、@、#、%和&等符号的方式。具体地说,我正在使用Syntax 数学符号与符号,syntax,wolfram-mathematica,symbols,Syntax,Wolfram Mathematica,Symbols,我对Mathematica比较陌生,虽然我熟悉很多编码约定,但我不知道Mathematica在命令中使用@、@、#、%和&等符号的方式。具体地说,我正在使用GatherBy对包含pairscases列表中元素I的pairs进行分组,以寻求帮助 我一直在使用e=GatherBy[cases,MemberQ[#,I]&]在我的函数范围外测试时工作正常,但当放入函数模块时,它不是搜索案例,而是搜索我在函数中声明的其他列表 我认为这是因为我误用了符号(也可能是&符号) 请帮助我指出我做错了什么和/或一些
GatherBy
对包含pairscases
列表中元素I
的pairs进行分组,以寻求帮助
我一直在使用e=GatherBy[cases,MemberQ[#,I]&]代码>在我的函数范围外测试时工作正常,但当放入函数模块时,它不是搜索案例
,而是搜索我在函数中声明的其他列表
我认为这是因为我误用了
符号(也可能是&
符号)
请帮助我指出我做错了什么和/或一些关于所有这些符号及其在Mathematica中的用途的文档
提前非常感谢你们为我提供的一切帮助
干杯
编辑
这里有更多关于我的函数的解释
distill[mono_] := Module[{cases, e, f, g, h, check, res},
cases = FactorList[mono];
cases = Cases[cases, {P[_Integer, _Integer], _}];
(*Flatten the list*)
cases = Flatten[cases];
(*Remove the extra 1s *)
cases = Cases[cases, P[_Integer, _Integer]];
cases = cases //. P[r_, q_] :> {r, q};
(*Create equivalance list on the points*)
(映射值是一个全局数组,包含成对中所有可能的值)
对于[i=mappedVals[[1]],我在离这里不远的地方找到了两个有用的资源:和。要获得关于这个问题的帮助,您可能需要将问题归结为更简单的内容,因为没有人知道mappedVals
中有什么内容,并且无法运行您的代码。请使用选择然后补码,而不是gatherby
For[i = mappedVals[[1]], i <= Length[mappedVals]/2, i++,
Print[i];
e = GatherBy[cases, MemberQ[#, i] &];
If[Position[e[[1]], i] == {}, f = Flatten[e[[2]]],
f = Flatten[e[[1]]]];
If[Position[e[[1]], i] == {}, check = 0, check = 1];
g = Union[f];
If[check == 0, h = e[[1]], h = e[[2]] ];
cases = Append[h, g];
];
cases
];