您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > scilab-使用教程
1.1SCILAB的安装SCILAB可以从官方网站上下载,用户可以选择安装二进制版本,或者编译源程序生成SCILAB。1.2SCILAB主窗口介绍第1章SCILAB简介1.3SCILAB中的基本操作与预定对象1.3.1SCILAB的工作环境的存取可采用saveload函数对工作环境进行存取。例如:savework.datsave(‘work.dat’,A,x)loadwork.dat1.3.2界面层次的控制操作1.3.3SCILAB主窗口中的快捷键操作1.3.4SCILAB中预先定义的对象可以用Whos和who查看SCILAB中预先定义的对象。2.1引言2.2特定符号与常数2.2.1特定符号指令分隔符(,;)指令行续行符(…)加注符号(//)$最后一个变量起始值:间隔:终止值2.2.2特定常数%pi,%i,%NAN无穷,%e,%inf,%eps逃离,%f错,%t对。2.3标量的数值计算和常用函数包括加(+)、减(-)、乘(*)、除(/)和乘方(^)等运算。常用函数有:sqrt,log,log10,sin,cos,tan,atan,exp,cosh,floor大于该数的最小整数,round四舍五入,abs绝对值,real,imag,modulo取余modulo(3,2)等.2.4数值型向量与矩阵的定义及基本运算2.4.1数值型向量与矩阵的定义矩阵元素放在[]中,每行用“;”分隔开,每列用“,”(或用空格)分隔开。第2章数据类型2.4.2数值型向量与矩阵的运算包括矩阵的加法(+),减法(-),共轭转置(’),乘法(*),左除(A/B是指),右除(A\B是指),幂(^),逐元相乘(.*),逐元相除(./),逐元取幂(.^)等运算。2.5与数值型矩阵有关的若干常用函数2.5.1常用矩阵的生成函数diag生成对角矩阵diag([1,2,3]);和空格也可以eye生成单位矩阵rand生成随机矩阵ones生成全部元素为1的矩阵zeros生成零矩阵。linspace(或“:”)生成线性分布的向量。BA11AB2.5.2size函数和matrix函数size函数获取矩阵的大小;size(矩阵名)matrix函数用已知矩阵的元素生成重新定义大小的矩阵。e.gb=matrix(a,2,3)2.5.3从已知矩阵提取部分元素来构成同阶新矩阵的若干函数可使用triu()函数和tril()函数提取上三角和下三角元素来构成同阶新矩阵e.gy=triu(a,1):将对角线向左下方移动一排2.5.4与方阵的行列式求值、求逆、线性代数方程组的求解、求矩阵特征值与特征向量等有关的函数det方阵的行列式求值inv求逆linsolve线性代数方程组的求解spec求矩阵特征值bdiag矩阵对角化2.5.5与矩阵(数组)或向量有关的数据统计函数[n,[d]]=max(a,[‘r(每一行)’],[‘c(每一列)’])取矩阵(数组)或向量元素的最大值sum(a,[‘r’],[‘c’])矩阵(数组)或向量元素求和mean(a,[‘r’],[‘c’]))矩阵(数组)或向量元素求平均值cumsum(a,[‘r’],[‘c’]))矩阵(数组)或向量元素的累加prod(a,[‘r’],[‘c’]))矩阵(数组)或向量元素的逐项求积2.6向量与矩阵(数组)元素的引用b(k)表示向量b的第k个元素a(i,j)表示矩阵a的第(i,j)个元素可以用函数find(条件表达式)来寻找所需的元素。a($)表示a的最后一个元素。a($-1)表示倒数第二个元素还可以用逻辑符号来提取矩阵的元素,例如:2.7整型数组采用int8()和int32()把一个数转化为整数。a=int8(4);b=int8(5);c=a/b结果为02.8布尔型向量与矩阵的定义及基本运算逻辑运算:与(&),或(|),非(~);关系运算:==,,,=,=,~=2.9字符串型数据的定义与运算2.9.1字符串的定义字符串一般用单引号(’)或双引号(”)括起来。还可以定义字符串矩阵。2.9.2字符串的运算可采用“+”将两个字符串连起来。2.9.3与处理字符串有关的一些常用函数ascii从字符型转换成ASCII值;execstr把字符串传给Scilab解释器;grep查找在字符矩阵中是否出现该字符串;part提取字字符串strindex在字符串中查找字符串string把数据转换成字符型stripblanks删除开头和结尾的空格strubst在字符矩阵中替换该字符串strcat把字符矩阵各元素的字符串串连起来length求字符矩阵各字符串元素的长度convstr字符串的大小写转换2.10多项式类型2.10.1多项式的定义1、直接定义s=poly(1(q中的s用s-1代入),’x(变量名字)’);q=1+3*s^4;2、用根定义p=poly([1,3],’x’);3、用系数定义p1=poly([1,2,4],’x’,’c’);2.10.2多项式运算有加(+)、减(-)、乘(*)、除(/)运算。2.10.3有关多项式的几个常用函数coeff取多项式系数pdiv求多项式的商和余式denom取多项式的分母numer取多项式的分子roots求多项式的根horner(p,str)用str代替多项式p中的变量derivat求多项式的导数2.11表类型2.11.1表类型的定义可用list,tlist和mlist三个函数创建表变量。表中的元素可以是任何类型的,例如s=list(‘shanghai’,13,%f,[1,5]);definedfields()返回表中已定义元素的标号;2.11.2表类型数据的引用,域的插入与删除使用x(0)在表x的表头插入数据;使用x(i)删除表x中的第i个元素;使用getfield()可以抽取表中的元素;使用setfield()可以在表中插入元素;2.11.3tlist和mlist类型tlist和mlist采用域来定义表;例如:M=tlist([‘V(无意义)','name','value'],['a','b','c'],[123]);mlist类型表中的元素不可以索引来访问存储的对象。(M.name(2)得到name的第二个元素b)3.1引言3.2顺序结构程序设计3.2.1赋值语句变量名=表达式;表达式是由变量名加运算符所组成的式子;在变量名中区分大小写,有效字符是19个。3.2.2输入输出语句input();disp();read();write();printf();第3章SCILAB中的程序设计、脚本文件与函数3.3选择结构程序设计3.3.1if语句3.3.2selectcase语句3.4循环结构程序设计3.4.1for语句3.4.2while语句3.4.3循环语句的嵌套(多重循环语句)3.4.4continue语句和break语句第3章SCILAB中的程序设计、脚本文件与函数3.5脚本文件与函数3.5.1脚本文件可使用exec执行脚本文件,例如execfact.sci3.5.2函数1、函数的定义function[output]=fun_name(input)函数体endfunction还可以使用deff()定义内置函数,例如deff(‘c=plus(a,b)’,’c=a*b’);2、使用getf()加载定义函数的脚本文件。3.5.3局部变量与全局变量、函数的嵌套定义与递归调用使用global定义全局变量。在scilab中,可以嵌套定义函数,例如:在scilab中函数还可以递归调用,例如3.5.4有关程序调试的几个常用指令pause,resume,abort4.1引言4.2二维图形的绘制4.2.1plot指令1、plot指令可以用來绘制一般的曲线图。例如(对sin函数绘图):t=linspace(0,2*%pi);//取0到2π的范围y=sin(t);plot(y);2、多重曲线绘图,例子:x=-2:0.01:2;y1=sin(x);y2=exp(x);y3=sin(x)+cos(x);X=[x;x;x];Y=[y1,y2,y3];plot(X',Y');第4章计算结果可视化3、修改图形的线符t=linspace(0,2*%pi,50);y=sin(t);plot(t,y,'.','marksize',4,'color',[100]);plot(t,y+1,'+','marksize',4,'color',[0.70.30]);plot(t,y+2,'x','marksize',4,'color',[001]);plot(t,y+3,'o','marksize',4,'color',[0.80.40.6]);4、给图形加注在scilab下,可在图的坐标轴旁和图上方加上装饰或注解的文字,是使用xtitle()指令。用法:xtitle(‘标題’,‘x轴注解’,‘y轴注解');例如:t=linspace(0,2*%pi,50);y=sin(t);plot(t,y);xtitle('sinfunction','t','sin(t)');5、同一个窗口绘制多幅图subplot()指令可以让許多张图分别放在同一个绘图窗口而不是叠在同一张图上。subplot要放在绘图指令之前。語法:subplot(a,b,n);a:丛向图表数b:橫向图表数n:第几张图,n是先由左而右,自上而下。t=linspace(0,2*%pi);y=sin(t);t1=1:20;t2=1:20;A=rand(20,20);B=rand(20,20);subplot(3,2,1);plot(t,y);subplot(3,2,2);plot2d2(t,y);subplot(3,2,3);plot2d3(t,y);subplot(3,2,4);plot2d4(t,y);subplot(3,2,5);bar(t,y);subplot(3,2,6);champ(t1,t2,A,B);6、离散点的绘制A:3.34.211135.68B:2.156.7131719x=read('A',1,6);y=read('B',1,6);plot(x,y,'.');必須注意的是,在plot()中必須要加入'.'這個參數,如果不加的話,Scilab會將這些點連起來。在绘图时,可使用函数xgrid()对所绘制的图形加上网格。4.2.2plot2d指令plot2d()指令的用法与plot2d()差不多。4.2.3向量场图的绘制用法:champ(t1,t2,X,Y);t1:y方向(垂直方向)范围t2:x方向(水平方向)范围X:全域x方向的大小矩陣Y:全域y方向的大小矩陣4.2.4极坐标绘图polarplot()指令主要是让函数坐标轴的R方向以同心圓显示,θ方向以垂直于同心圓的放射线表示。例子:t=linspace(0,2*%pi);r=sin(4*t));polarplot(t,r);4.2.5等高线图定义一个连续函数,对它画contour的方式:1.定义一个曲面:deff(‘[变量3]=宣告的曲面函数(变量1,变量2)’,’变量3=f(变量1,变量2)’);2.定义变量范围;3.contour(x范围,y范围,曲面函数,要画线的条数);例子:deff('[z]=sf(x,y)','z=2*x^2+3*y^2');x=1:20;y=1:20;contour(x,y,sf,10);4.3三维图形的绘制4.3.1函数plot3d()——三维曲面的绘制用法:plot3d(t1,t2,Z);t1:y轴方向选取的范围。t2:x轴方向选取的范围。Z:矩陣。如果需要让图在绘出后停在某个特定的視角,可以在plot3d()內再加入alpha和theta參数,這两个参数是指角度,用法:plot3d(t1,t2,Z,alpha=數值,theta=數值);例如:A=[12210;23463;32122;11232;11221;13312];t1=1:6;t2=1:5;plot3d(t1,t2,A);还可以用plot3d1()绘制彩色图形。4.3.2连续函數3D绘图fp
本文标题:scilab-使用教程
链接地址:https://www.777doc.com/doc-1838699 .html