存档

文章标签 ‘Mathematica’

都是鼠标惹得祸

2009年7月9日 2 条评论

不知道哪个人发明的鼠标,让人偷了不少懒,惹了不少祸……Firstmouseunderside

上次说过,现在做数据处理,直接用Mathematica出图成PDF,然后用LaTeX调用。

今天,准备打印一篇文稿,用纸笔好好修改一下。在笔记本上连接单位的打印机,一打印就出错,说“打印任务无法执行”。于是换到办公室的台式机,同样出错……于是开始怀疑打印机出错,跑到打印机跟前,发现同事们照打印不误……于是又怀疑打印机服务器PC出错,从远端连接几次,没有什么问题……于是怀疑文件问题,开始一页一页试,发现就是那两页有图片的不能打印,仔细观察图片,在屏幕上完好显示的……于是换了一台彩色打印机,终于可以打印了!不过出来的纸上没有图。于是又用Acrobat Distiller,从PDF虚拟打印成PDF/EPS/PNG等等等等,竟然发现出的文件里也没有图。看来有苗头了,拿出从Mathematica里直接出的PDF格式图片,实际打印和虚拟打印都只有空白页面。眼睛可以看见的东西,却打印不出来,只能对着电脑抓狂~~ ·#*§$€^@% ~~

找到同事讨论,也被别人视为奇谈。聊了很久,我偶然提到自己经常用鼠标右键,然后在弹出菜单里选择 Save Graphics As。他说虽然方便,却从来都是用命令行输出文件的。难道就是这个原因?回到办公室把图片更新一遍,竟然问题解决了。

其实,只需要在绘图命令以后加这样一行就可以输出了。

Export["ExpData.pdf", %, "PDF"];

修改以后,再没有这么奇怪的打印机问题。教训在于:

  1. 以后能用命令行解决的事情,决不要偷懒用鼠标。
  2. 以后眼睛眼见的东西(例如,屏幕上显示的东西),实际上可能完全不一样。(这话怎么像说的是针对婚纱照写真集呢。)

一个下午,原来计划修改文章的,现在被鼠标右键给毁了。

分类: 科学工作 标签: , ,

工作杂记

2009年7月2日 3 条评论
    (一)Mathematica,数据处理
    以前用的几个数据处理软件,按照使用的频率排是Origin,KaleidaGraph,Excel。最不喜欢的是Excel,有点太简单了,不过做实验的人喜欢,给的实验数据都是这个格式的。
    最先使用Mathematica是用来推公式的,图形方面比较弱,以前画图都是将Mathematica产生的数据导到Origin里处理。最近发现Mathematica 7里的3D绘图性能提高以后,几乎所有的图都是从Mathematica出的。新版本里支持图形输出成EPS、PDF格式,用LaTeX写文章很方便。Mathematica里的图形控制相对比较复杂,不过用过几次以后,就已经熟悉了,而且可以定制。
    例子,一个数据文件,带XY两列数据,文件头部有一段文字说明。可以直接拿下面的代码搞定绘图。

SetDirectory["D:\\@WorkExchange\\2009_NcEffect\\Data"];
stream = OpenRead[NcFileName];
Skip[stream, String];
Data = ReadList[stream, {Number, Number}];
Close[stream];
Nc = Transpose[{Data[[All, 1]], Data[[All, 2]]}];
ListPlot[Nc, Frame -> True]

第一行设定工作路径;第二打开文件;第三行跳过头部的文字;第四行读出数据;第五行,转成XY的数组,最后就可以画出来了。NcEffect_DataProcessing

现在需要读写大量的数据,要是用Origin什么的,估计用鼠标都用得手抽筋。用代码实现,还是很不错的选择。记得Linux下面,有个直接命令行绘图的,出EPS文件,现在也不用管了。

Mathematica里的好处,就是可以设定拟合函数,和拟合方法(例如,最大似然估计)。最后一个对于数据的统计分析非常重要,代码实现起来也就3、4行。而在Origin里没有现成的方法,需要自己写子程序。另外,3D的数据重现也是非常方便的,例如右图。实现起来,也就是上面一段代码的简单扩展。这个如果要用Origin画,估计就要花费比较多的时间来处理。现在对于Excel里的实验数据,都是到处成文本,然后用Mathematica处理的。

不过,Mathematica里还是有几个问题,例如循环的有效性比较低,占用比较多的CPU资源。这个就不如Matlab之类的软件了。

(二)Elservier的LaTeX投稿

上次说过ElsevierLaTeX投稿时出现的图片格式问题。最近投出另外一篇文章的时候发现,其实Elsevier已经提供了很好的LaTeX支持了。很详细的说明和宏包都可以在这里找到。只需要将 elsarticle.cls 文件拷贝到工作目录,在LaTeX头部文档说明处改成

\documentclass[option]{elsarticle}

option 可以是preprint, review, 1p, 3p, 5p等。用5p选项,可以得到类似期刊双栏的实际排版效果。最近,就用这个选项估计了文章在期刊上出现的长度。这个对于一些有长度限制的文章投稿,很有帮助。

(三)Word 还是 LaTeX

今年要参加的一个会议,文章都快写完了发现,人家只收WORD版本的文档。

用过LaTeX写科研文章以后,怎么也想不通,一个MS Office排出的东西不好看,还要收费。于是写信和人家讨论,询问是不是可能收LaTeX,信件如石沉大海。唉~

另外,发现一个GrindEQ,可以转化LaTeX文档到WORD,包括文档中的公式和表格。转化的效果还是不错的,尤其在文档里有大量公式的时候,从LaTeX->Html->Word的方法显然是不够用的。不过GrindEQ是个收费版本,有10次试用。算算手头的东西转10次估计也是够了吧。

还有一些,等等再写吧…