2013-04-08 39 views
1

有沒有什麼辦法,數學:PadRight []和 [PlusMinus]

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

返回

{a \[PlusMinus] b,""} 

而不是

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

我相信我需要以某種方式停用[PlusMinus]的運算符屬性。

爲什麼我需要這個?

我正在創建一個程序來顯示物理量的表格。對我來說,這意味着像[PlusMinus] (的價值)條目表(的不確定性)

當我有不同的高度,我是餡短的以「」幾列,這樣我就可以使用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

首先,需要注意的是,在數學任何表達式是在頭的形式[機構] 其中體可以是空的,一個單一的表達或以逗號 長度分隔的表達式的一個序列上表達式操作,不一定列出 所以 長度[PlusMinus [A,b]] 返回2,因爲表達的主體包含對是一表達式(在這種情況下的原子)和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

最好

耶胡達

+0

謝謝。我開始使用mathematica。我並不知道頭部的概念。現在我明白了我想用我的代碼做什麼 – 2013-04-10 20:41:56