查看完整版本 : 转贴:有意推广SCILAB的同仁请回帖


yg545
2006-05-13 17:16
作者:sumigs

http://www.simwe.com/forum/viewthread.php?tid=273291&highlight=scilab......ighlight=scilab



scilab使用指南——文件操作(推荐),控制绘图,线性代数

本指南较为松散,基本上是遇到什么问题说什么,请在相关使

用过程中参考。



BTW:数值运算操作基本同matlab相同。具体详细的帮助文件

请下载软件后查阅。

而且scilab的一大好处是绿色,免费而且同时支持在

windows和linux下运行,并且集成了pvm模块,支持

并行计算,所以可以作为并行计算的开发运行平台。

与matlab对比,scilab更像c语言,其结构化,独立模块化

较差,对于单一目标任务比较适宜,如果开发通用型程

序,其优势相对不足。而且在图形功能方面暂时未发现

有超出matlab的地方。我所欣赏的方面就是其较少的内存

占用量15Mb,较快的反应速度,不像matlab那样,启动

就要10秒,占用内存47Mb。



2004年6月7日16:38

在for语句中,典型实例,向量递减时

for i=n:-1:1

i;

end

此时不会默认步长,需要注意。



常用控制语句

if statement==statement|

end



基本功能使用上与matlab基本相同,如果使用函数与

c语言相似,同主调用过程可同写在一个文件中。

function Y=f(x)

statements;

endfunction

为加快执行速度,适当使用向量化,如点积(dot.),

向量化操作矩阵,赋值等。



文件操作

仿c语言fprintf

u=file(’open’,’results’,’unknown’) //open the result file

t=0:0.1:2*%pi;

for tk=t

fprintf(u,’time = %6.3f value = %6.3f’,tk,sin(tk)) // write a line

end

file(’close’,u) //close the result file



打开文件,推荐使用

[fd,err]=mopen("F:/scilab-2.6/usr/raw.dat" );



写文件

mfprintf(’At iteration %i, Result is:\nalpha=%f’,33,0.535)



读文件

NB(1:4)=mfscanf (fd,'%d%d%d%d');



关闭文件

err=mclose(fd);

2004年6月8日09:47

而且scilab的一大好处是绿色,免费而且同时支持在

windows和linux下运行,并且集成了pvm模块,支持

并行计算,所以可以作为并行计算的开发运行平台。

与matlab对比,scilab更像c语言,其结构化,独立模块化

较差,对于单一目标任务比较适宜,如果开发通用型程

序,其优势相对不足。而且在图形功能方面暂时未发现

有超出matlab的地方。我所欣赏的方面就是其较少的内存

占用量15Mb,较快的反应速度,不像matlab那样,启动

就要10秒,占用内存47Mb。



12:59

误区:函数内部定义时又调用其他的函数,这是不允许的。



2004年6月17日11:40

读取文件标记

查看是否到达文件结尾

err=meof(fd)



2004年6月19日10:53:18

自编字符串比较函数strcmp,



14:10:27

基本搞定文件读取

定义了 boo=strcmp(s1,s2)



量取字符串长度

size1=length(s1);

而且字符串的定义基本不区分''""。



抽取字符串中第i个字符

part(s1,i)



一次性将所有字符数据按行读入字符串矩阵

str=mgetl(fid);



量取字符串矩阵的大小

sizefile=size(str);其中每行只有一个元素,即字符串



从字符串扫描输入数据

A(SAMPLE*(i-1)+k,1:7) = msscanf(tline,'%f%f%f%f%f%f%f');



对于图形功能尚未了解

图形可以通过文件——导出成Gif格式。

但自动存取不了解,



如何将多条曲线绘制于同一坐标系中

可以采用矩阵分割屏幕

subplot(211);



多条曲线绘制于同一坐标系中

plot2d(c,d);其中c,d分别为[x;x...;x],[y;y...;y],即每列相对应



写标题

xtitle('w vs V');



限定坐标系矩形范围

rect=[XMIN,wmin,XMAX,wmax];



较为复杂的控制绘图

plot2d1('gnn',c,d, ,'011',' ',rect)其中分别为[x;x...;x],

[y;y...;y],rect为前面定义的矩形框。

不过如果矩形比较矮时,曲线会越过矩形框。



2004年6月21日16:33:17

矩阵特征值

evals=spec(A)

特征值及特征向量

[Ab,X]=bdiag(inv(M)*K)

单位阵

M=eye(5,5)

零矩阵

M1=zeros(5,5);

amao
2006-05-13 19:47
很多情况下,Scilab就够用了。