Tricks

命令行运行matlab

  • matlab可以不启动图形界面运行,比如

matlab -nodesktop -nosplash

或者

matlab -nodisplay

或者

matlab -nojvm -nosplash

 

  • matlab程序也可以在命令行里直接运行,只需要使用 -r 选项。比如运行当前目录下的example.m

matlab  -nodesktop -nosplash -r example

或者

matlab  -nojvm -nosplash -r example

或者

Matlab中latex公式减号不显示的替代方法

某些系统下Matlab中显示latex公式时减号显示不出,可用如下方法利用分号代替减号:

分子分母都用空格

\frac{\ }{\ }

如果只要打印结果中正常显示减号,可以只使用{-}代替减号。

Matlab中创建换行图例

利用字符矩阵中加入sprintf('\n')可以实现图例中的换行。

比如如下一段代码

x=0.1:0.1:5;
plot(x,sin(x),'-',x,cos(x),':');
legend(['Model 1:',sprintf('\n'),'sin(x)'],['Model 2:',sprintf('\n'),'cos(x)']);

即可将每个legend都显示为两行。注意在legend函数中试图使用cell array实现换行是行不通的。

如何在C中抑制库函数的标准输出

在自己的程序中调用编译好的库函数时,如果库函数会输出一些提示信息(比如初始化信息、版本信息或者警告信息)而你又不喜欢这些信息,并且你希望保留另外一些函数的标准输出,可以在编程调用时这样做:

通过结构体实现C可变参数函数

通常C语言中实现可变参数函数的方法,要利用<stdarg.h>的库函数,比如

http://c-faq-chn.sourceforge.net/ccfaq/node261.html

看上去比较繁琐。

今天忽然想到可以借助结构体实现这样的功能。首先根据所有可能用到的参数定义一个结构体,比如

struct par_all
{
int var_i;
int var_j;
float var_x;
float var_y;
char *var_c;
char *var_d;
...
} myparam;

然后定义函数

C 语言常见问题集(中文版)--非常实用的C编程参考

http://c-faq-chn.sourceforge.net/

非常实用的C语言编程参考手册,极力推荐。

Fedora Linux下在Firefox中安装Java

Fedora下Firefox在浏览某些带有java applet的网页时会提示缺少插件,自动搜索后到Java Runtime Environment后又装不上,需要手动安装。于是手动从sun的网站下载了JRE[下载地址]的rpm包,运行安装,装完之后重启浏览器,期待中的网页仍无法正常显示,仍然提示缺少插件,sun的检测JRE的网页也检测失败,甚是恼人。

Optimized fortran compilation commands

irix:
f90 -64 -O3 -LNO -ipa -Ofast=ip27 -o v12.bin ....   1>>tmp

ifort:
ifort -O3 -axP -parallel -o v12.bin ... 1>>tmp
(axT for core2)

用firefox和opera访问wiki

如果你可以访问一般的国外网站,但有些特定的网站无法访问,很可能是该站点被GFW给屏蔽了,或曰被河蟹了(个中详情自行google之),可以试试下面两种方法:

1.firefox+gladder插件

gladder,意为great ladder,

聚合内容