Max*_*Max 10 wolfram-mathematica
有没有办法迫使Mathematica独立于其未订阅的对应物处理下标变量?进一步来说.说,我有以下定义:
Subscript[b, 1] = {{1, 2}}
Subscript[b, 2] = {{3, 4}}
b = Join[Subscript[b, 1], Subscript[b, 2]]
Run Code Online (Sandbox Code Playgroud)
现在我用的时候
Subscript[b, 1]
Run Code Online (Sandbox Code Playgroud)
Mathematica将替换它
Subscript[{{1, 2}, {3, 4}},1]
Run Code Online (Sandbox Code Playgroud)
当我希望这些是三个独立的值时,所以改变b不会影响下标[b,..].可能吗?
Sim*_*mon 13
在回答之前的SO问题,Mathematica Notation和语法模型时,telefunkenvf14提到他是
希望使用Notations强制MMA将下标变量视为符号
这基本上就是这个问题的内容.
WReach指出Notation包可以非常简单地使用Symbolize
Needs["Notation`"];
Symbolize[ParsedBoxWrapper[SubscriptBox["_", "_"]]]
Run Code Online (Sandbox Code Playgroud)
哪里(如丹尼尔的回答)不要太担心Box
上面的结构,因为你可以使用Notation
调色板更简单地输入这些东西.
检查一切是否按预期工作:
In[3]:= Subscript[a, b]//Head
a = 1
Subscript[a, b]
Out[3]= Symbol
Out[4]= 1
Out[5]= Subscript[a, b]
Run Code Online (Sandbox Code Playgroud)
和
In[6]:= Subscript[b, 1] = {{1, 2}}
Subscript[b, 2] = {{3, 4}}
b = Join[Subscript[b, 1], Subscript[b, 2]]
Out[6]= {{1, 2}}
Out[7]= {{3, 4}}
Out[8]= {{1, 2}, {3, 4}}
Run Code Online (Sandbox Code Playgroud)
注意:以上所有代码都已复制为输入文本,因此排版SubscriptBox
已转换为输入形式Subscript
.但是,Symbolize
在盒级别的工作,所以测试需要转换回他们的2d形式.为此,请选择代码(或单元格)并使用菜单或快捷方式将其转换为标准形式.具有上述所有代码的笔记本应该是这样的
Cell
Ctrl-Shift-N