Mathematica"AppendTo"功能问题

use*_*058 4 wolfram-mathematica

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

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

非常有效:

Table[AppendTo[mydata[[i]],myfirstlist[[i]]],{i,4}] 
Run Code Online (Sandbox Code Playgroud)

打印出表格:mydata // TableForm显示添加的列.

但是,当我尝试添加我的第二个列表时

Table[AppendTo[mydata[[i]],mysecondlist[[i]]],{i,5}]
Run Code Online (Sandbox Code Playgroud)

无论是数学崩溃(!)或者,我得到的转换Part::partwPart::spec错误说第5部分不存在.

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

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

Dav*_*idC 6

让我们试着澄清双转置方法的组成部分.我没有声称这种方法的原创性.我的重点是阐述的清晰度.

让我们从5个列表开始.首先,我们将三个放在一个表中.然后我们将添加最后两个.

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"};
Run Code Online (Sandbox Code Playgroud)

前三个名单 - 食物,哺乳动物,画家 - 成为其中的元素lists3.它们只是列表,但TableForm在表格中将它们显示为.

(lists3 = {food, mammals, painters}) // TableForm
Run Code Online (Sandbox Code Playgroud)

lists3

mydata将是lists3转置的名称.现在,这三个列表显示为.这就是换位的作用:切换列和行.

(mydata = Transpose@lists3) // TableForm
Run Code Online (Sandbox Code Playgroud)

MYDATA

这就是问题实际开始的地方.我们如何添加两个额外的列(即国家和体育列表)?所以让我们使用其余两个列表.

(lists2 = {countries, sports}) // TableForm
Run Code Online (Sandbox Code Playgroud)

lists2

因此,我们可以加入Transpose[mydata]lists2....

(lists5 = Join[Transpose[mydata], lists2]) // TableForm
Run Code Online (Sandbox Code Playgroud)

lists5

[或者,我们可能有Join编辑lists3,lists2因为第二次换位,mydata撤销早期换位的转换. lists3只是转换mydata.(反之亦然).]

In[]:= lists3 === Transpose[mydata]
Out[]:= True
Run Code Online (Sandbox Code Playgroud)

现在我们只需要Transpose结果就可以获得五个列表所需的最终表,每个列表都占用自己的列:

Transpose@lists5 // TableForm
Run Code Online (Sandbox Code Playgroud)

决赛桌

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