2
我想生成下標名稱爲「多維」的下標名詞列表。Maxima:生成帶有「多維」下標的名詞列表
例如,使用兩個以下列表作爲輸入:
[1,5,2]
[3,5,1]
我想生成以下列表:
[a[3,1],a[5,5],a[1,2]]
這裏是一個工作示例:
(%i1) indexX : [1,5,2];
(%i2) indexY : [3,5,1];
(%i3) makelist(a[i], i, indexX);
(%i4) map(endcons, indexY, %);
(%o1) [1,5,2]
(%o2) [3,5,1]
(%o3) [a[1],a[5],a[2]]
(%o4) [a[3,1],a[5,5],a[1,2]]
這有效,但它需要兩行(請致電makelist()
,然後致map()
)。因此它不是很優雅。
有沒有更好的方法來達到類似的結果?
注意:陣列不適合這項工作,因爲1.索引可以是負數,2.我不想爲[1,1]
和[5,5]
之間的所有索引分配內存,因爲我只使用其中的幾個。
這是一個有趣的解決方案,你有。但是,我有點困惑:一個下標名詞和一個數組元素有區別嗎?對'arraymake()'的調用是產生一個數組還是隻產生一個名詞? –
@GLorieul [arraymake](http://maxima.sourceforge.net/docs/manual/maxima_5.html#IDX142)返回未評估的表達式。你也可以考慮[subvar](http://maxima.sourceforge.net/docs/manual/maxima_5.html#IDX150) – slitvinov
好,所以你的解決方案適合我。我仍然對maxima調用數組感到困惑,但我會將它作爲一個新的stackoverflow問題發佈(這似乎是最合適的)。 –