gpt4 book ai didi

wolfram-mathematica - Mathematica "AppendTo"函数问题

转载 作者:行者123 更新时间:2023-12-04 08:17:39 27 4
gpt4 key购买 nike

我是 Mathematica 的新手,在向数据表中添加列时遇到了重大故障。我在 Vista 中运行 Mathematica 7。在问这里之前,我已经花了很多时间 RFD。

我有一个包含三列五行的数据表 (mydata)。我正在尝试向表中添加两个包含五个元素的列表(有效地向数据表中添加两列)。

这完美地工作:

Table[AppendTo[mydata[[i]],myfirstlist[[i]]],{i,4}] 

使用以下命令打印表: mydata // TableForm 显示添加的列。

但是,当我尝试添加第二个列表时
Table[AppendTo[mydata[[i]],mysecondlist[[i]]],{i,5}]

要么 Mathematica 崩溃(!),要么我收到大量 Part::partwPart::spec 错误,说第 5 部分不存在。

但是,在所有错误消息(如果 Mathematica 没有崩溃)之后,再次打印出数据表: mydata // TableForm 就像我预期的那样显示了具有五列的数据表。修改后的数据表上的所有 TableForm 格式选项都可以正常工作。

谁能告诉我我做错了什么?提前致谢!

最佳答案

让我们尝试澄清双转置方法的组成。我对这种方法的独创性不做任何声明。我的重点是阐述的清晰度。

让我们从 5 个列表开始。首先我们将三个放在一张 table 上。然后我们将添加最后两个。

food = {"bagels", "lox", "cream cheese", "coffee", "blueberries"};
mammals = {"fisher cat", "weasel", "skunk", "raccon", "squirrel"};
painters = {"Picasso", "Rembrandt", "Klee", "Rousseau", "Warhol"};
countries = {"Brazil", "Portugal", "Azores", "Guinea Bissau",
"Cape Verde"};
sports = {"golf", "badminton", "football", "tennis", "rugby"};

前三个列表——食物、哺乳动物、画家——成为 lists3 的元素。它们只是列表,但 TableForm 将它们作为 显示在表中。
(lists3 = {food, mammals, painters}) // TableForm
mydata 将是 lists3 转置的名称。现在这三个列表显示为 。这就是换位的作用:列和行被切换。
(mydata = Transpose@lists3) // TableForm

这才是问题真正开始的地方。我们如何添加两个额外的列(即国家和体育列表)?所以让我们处理剩下的两个列表。
(lists2 = {countries, sports}) // TableForm

所以我们可以加入 Transpose[mydata]lists2 ....
(lists5 = Join[Transpose[mydata], lists2]) // TableForm

[或者,我们可能有 Join ed lists3lists2,因为第二次转置, mydata 的转置取消了先前的转置。 lists3 只是 mydata 的换位。 (反之亦然)。]
In[]:= lists3 === Transpose[mydata]
Out[]:= True

现在我们只需要对结果进行 Transpose 以获得所需的五个列表的最终表,每个列表占据自己的列:
Transpose@lists5 // TableForm

我希望这有助于阐明如何向表中添加两列。我觉得这种方式相当清楚。你可能会发现一些更清晰的方法。

关于wolfram-mathematica - Mathematica "AppendTo"函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5278963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com