用不用matrixform差别那么大吗?
mathematica吧
全部回复
仅看楼主
level 11
iangie_明月 楼主
如图可见, 第二次输入只多了末尾的matrixform. 居然影响了Drop操作对行列的判断! 偶是不是火星了~大家给点评论啊~
附上代码给大家实验:
datarecords={{"Joe", "Smith",158,64.4},{"Mary", "Davis",137,64.4},{"Bob", "Lewis",141,62.8},{"John", "Thompson",235,71.1},{"Lewis", "Black",225,71.4},{"Sally", "Jones",168,62.},{"Tom", "Smith",243,70.9},{"Jane", "Doe",225,71.4}};
Drop[datarecords,None,{1,2}]//MatrixForm
datarecords={{"Joe", "Smith",158,64.4},{"Mary", "Davis",137,64.4},{"Bob", "Lewis",141,62.8},{"John", "Thompson",235,71.1},{"Lewis", "Black",225,71.4},{"Sally", "Jones",168,62.},{"Tom", "Smith",243,70.9},{"Jane", "Doe",225,71.4}}//MatrixForm;
Drop[datarecords,None,{1,2}]//MatrixForm
2014年08月22日 05点08分 1
吧务
level 12
因为//MatrixForm以后就不再是一个列表了,而是成为了一种新的格式,你可以理解为MatrixForm命令把列表变成了一张图片,从此就只能看不能作为列表参与运算了
比如你可以感受一下这个例子
2014年08月22日 07点08分 2
应该是吧 其实MMA如果报错或者出个warning都要比这样悄不声的给个结果好点。第二个输入的结果很可能误导用户。补一句TableForm也是一样的效果~
2014年08月22日 11点08分
回复 iangie_明月 :主要是Drop可以作用在任意头部的对象中所以不会报错,换成ArrayPlot之类只能作用在List上的函数就不会出现这种问题了
2014年08月22日 11点08分
1