27
Sep
刚刚读了一点筑波大学的樱井铁也写的《通过MATLAB/Scilab来理解数值计算》(日文)。将要点整理于此,供感兴趣的同学及自己参考。
在Matlab中,如果一个变量有赋值,比如t=20,那么可以写“2t”就为40。而Scilab里面直接写“2t”不可以,要加上*,即为“2*t”。(多谢D.D.留言订正!2004/09/28)- Matlab的注释是用“%”引导;在Scilab里面是“//”。
- 一些预设的变量的表示方法不同。比如圆周率pai在Matlab里面就是“pi”,而在Scilab里面要加上“%”,也就是说,调用圆周率的时候要写“%pi”。类似的还有:虚数在Matlab里可以是“i”或者“j”;而在Scilab里面为“%i”(“%j”好像不可以)。例外的是默认变量“ans”,两者都不需要加百分号。
- 操作符的用法如:加减乘除,大于小于等大多一样。唯一例外是“不等于”,在Matlab里是“
a ~= b”;在Scilab里是“a <> b”或者“a != b”。 - 程序的编辑与执行的不同。Matlab中如果编辑sample.m文件,敲入:edit sample即可。执行时也就是输入:sample。而在Scilab里要复杂些。启动编辑器为“scipad();”,执行保存后的文件如sample.sci要输入“
exec('sample.sci');”。 - 两者在矩阵的定义与矩阵元素的调用上都差不多。唯一不同的是对矩阵的最后一个元素的调用。在Matlab里,“最后”这个不定变量为“end”,而在Scilab中为“$”。例:矩阵u=[1,2,3];。要调用最后一个3时命令为:u(end)——Matlab;u($)——Scilab。
- 在矩阵的运算上也大多相同。不同点在length和sum命令上。Matlab中length输出矩阵行或者列中元素较多的一个的元素个数,sum输出各个列相加的和;在Scilab中length为整个矩阵的元素数,sum输出全部元素的和。在Scilab中如果要输出各列或者各行的元素和要在sum命令里加上参数,如:
sum(A,'r');或者sum(A,'c');。 - 方阵的构造在Matlab中是要一个参数,如:zeros(2);是一个二乘二的零矩阵,eye(3);是三乘三的单位矩阵。在Scilab里需要将两个维都写出来,即:
zeros(2,2);和eye(3,3);。
11 Comments so far
Leave a comment
Fields in bold are required. Email addresses are never published or distributed.
Some HTML code is allowed:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URIs must be fully qualified (eg: http://www.dupola.com) and all tags must be properly closed.
Line breaks and paragraphs are automatically converted.
Please keep comments relevant. Off-topic, offensive or inappropriate comments may be edited or removed.



(1)中的2t好像matlab里也是不可以的。
谢谢小马,以后有时间一定多写写类似的东西!
我刚开始用学用这个免费软件:)
另外,看到网上书店有一本中文教程,《科学计算自由软件—SCILAB教程》,胡包刚等编写的.清华大学出版社,作者好象是中科院自动化所的博士.
多谢cugliuliu的访问,你的网站我也看了,不错。共同交流,共同进步。
一个内容丰富的scilab文档网站(英文)
http://www.engineering.usu.edu/cee/faculty/gurro/Scilab.html
还有Boolean variables:
scilab: %t, %f
matlab:0, 1
想起来了,还有!!!!!
多项式的定义!!!
scilab是用poly函数定义的!!!
matlab呢?
《科学计算自由软件—SCILAB教程》哪里有下载的?告诉我一声!!!!!!!!!!
How to use DOS command in Scilab environment?
We know that in Matlab it is easy: just use “!”, e.g.,
!del *.bak
How could we do the same thing in Scilab?
Thanks!
when plot ,set the frame of the output, in matlab in
axis([xmin xmax ymin ymax]);
and in scilab
use the command
plot(x,y,rect=[xmin ymin xmax ymax]);
or plot2d(x,y,rect=[xmin ymin xmax ymax]);
我最近在研究scilab的一些简单的编程,最简单的那一种。有几个问题提供参考:mod(a,b)表示a除以b的余数,而实际运行的时候这个写法不识别,需要写成modulo(a,b).
《科学计算自由软件—SCILAB教程》已经出很久了吧。
网上资源那么丰富,没必要再找它下载了。
很久没上老马的博客了,我还以为消失了那。