mathematica:PadRight []和\ [PlusMinus]

时间:2013-04-08 22:10:31

标签: wolfram-mathematica pad

有没有办法

PadRight[a \[PlusMinus] b,2,""] 

返回

{a \[PlusMinus] b,""}

而不是

 a \[PlusMinus] b \[PlusMinus] ""

我相信我需要以某种方式停用[PlusMinus]的运算符属性。

为什么我需要这个?

我正在创建一个程序来显示具有物理量的表格。对我来说,这意味着带有条目的表格    (a的值)[PlusMinus](a的不确定性)

当我有几个不同高度的列时,我用“”填充较短的列,所以我可以使用Transpose表格的数字部分。

如果列有多个entrie,则没有问题:

PadRight[{a \[PlusMinus] b,c \[PlusMinus] d},4,""]

给出我想要的东西:

{a \[PlusMinus] b,c \[PlusMinus] d,"",""}

当列只有一个entrie时,我的问题出现了。

这是构造用“”:

填充的主体的代码
If[tested[Sbody],1, 
 body = PadRight[body, {Length[a], Max[Map[Length, body]]

使用

tested[a__] := 
  If[Length[DeleteDuplicates[Map[Dimensions, {a}]]] != 1, False, 
   True];

,一个发现参数是否具有相同维度的函数

a={Quantity1,Quantity2,...}

数量是我想要的数量。

由于

1 个答案:

答案 0 :(得分:1)

首先你需要知道Mathematica中的任何表达式都是Head [Body]的形式 body可以为空,单个表达式或用逗号分隔的表达式序列 长度对表达式进行操作,不一定是列表 所以 长度[PlusMinus [A,B]] 返回2,因为表达式的主体包含表达式(在本例中为原子),即a和b

阅读PadRight上的文档。第二个参数定义表达式的最终长度 所以 PadRight [{a,b},4,c]得到一个长度为4的列表,其中最后两个元素等于 PadRight [{a,b},2,c]与原始列表一起生成,因为它已经是长度为2 因此 PadRight [PlusMinus [a,b],2,任何东西]只返回相同的PlusMinus [a,b],因为它已经是长度2 所以,你首先的例子是错的。当您尝试使用头部PlusMinus填充表达式时,无法使用PadRight获取头部列表的结果

没有执行问题 PadRight [PlusMinus [A,B],3 “”] 但结果看起来很有趣(充其量)并且在逻辑上毫无意义,但如果这是你想要的第一个你得到它,并按照上面的解释你可以找出原因

HTH

最好的

胡达