Wolfram mathematica 具有带下标和上标的参数

Wolfram mathematica 具有带下标和上标的参数,wolfram-mathematica,Wolfram Mathematica,我想在mathematica中定义一个对象/符号,它将有几个参数,例如:S=(1-t)({b_I}^x,{b_I}^y)+t({b_{I+1}^x,{b_{I+1}^y)(某种乳胶符号)。在这个例子中,我试图描述连接两点的线段bii和bii+1} 如何在mathematica中定义这样的对象? 我发现了以下两个问题: 但我不确定我是否正确使用了它们。我所做的如下。首先,我援引: Needs["Notation`"]; Symbolize[ ParsedBoxWrapper[ Subsc

我想在mathematica中定义一个对象/符号,它将有几个参数,例如:
S=(1-t)({b_I}^x,{b_I}^y)+t({b_{I+1}^x,{b_{I+1}^y)
(某种乳胶符号)。在这个例子中,我试图描述连接两点的线段
bii
bii+1}

如何在
mathematica
中定义这样的对象?

我发现了以下两个问题:

但我不确定我是否正确使用了它们。我所做的如下。首先,我援引:

Needs["Notation`"];

Symbolize[
ParsedBoxWrapper[
SubscriptBox["\[SelectionPlaceholder]", "\[Placeholder]"]]]

Symbolize[
ParsedBoxWrapper[
SuperscriptBox["\[SelectionPlaceholder]", "\[Placeholder]"]]]
然后,我实际定义了对象:

(1 - t) {Subscript[b, i]^x, Subscript[b, i]^y} + 
 t {Subscript[b, i + 1]^x, Subscript[b, i + 1]^y}

这是做我想做的事的正确方法吗?我不完全确定我是否理解你的意思。你所说的“对象”

(1 - t) {Subscript[b, i]^x, Subscript[b, i]^y} + 
 t {Subscript[b, i + 1]^x, Subscript[b, i + 1]^y}
不是一个实体,而是两个列表的总和,每个列表由两个组件组成。因此,我假设您确实希望将
下标[b,I]^x
定义为一个符号


您可以使用
符号
包中的
符号
执行此操作。但是,使用在按下符号调色板上的符号按钮时生成的模板是绝对重要的(你在运行
时得到了这一点,进一步了解了Sjoerd的答案:既然你说符号
s
带有各种参数,我想你可能想探索用参数定义函数的方法。假设你确实希望
s
具有两个点的向量值,那么类似下面的东西将定义
s
S[x_,y_,t_,i_]:= (1-t) * {b[i]^x,b[i]^y} + t * {(b[i+1])^x,(b[i+1])^y}
问题是你是否真的需要下标。Sjoerd的答案显示了如何使用符号包来完成这一点,但是你应该考虑这个额外的复杂性是否对你的分析是必要的。< /P> 根据rcollyer非常有用的评论进行编辑 您可以使用定义自定义函数的表示形式。这与定义类似,但与表示形式有关,而不是与重写规则有关

类似于以下的方法应该可以工作:

Format[S[x_,y_,t_,i_],TraditionalForm] := 
  (1 - t) {Subscript[b, i]^x, Subscript[b, i]^y} +         
  t {Subscript[b, i + 1]^x, Subscript[b, i + 1]^y}  

我也很难理解这个问题。你在找。@Simon,对不起,我不太明白文档没有明显的错误,它只是没有说明全部情况。文档中的按键将生成一个
Subsuperscriptbox
,这是注释包将看到的内容。但是,Mma由def生成ault将其解释为
Power[Subscript[…]]
,这通常是您想要的。当您在输入中创建use
Subsuperscript
时,Mma通过创建
interprelationbox[Subsuperscript box[…],Subsuperscript[…],Editable->False]来保护它不受标准解释的影响]
,而且
可编辑->假
位很烦人。