scilab 使用教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5 脚本文件与函数 3.5.1 脚本文件 可使用exec执行脚本文件,例如 exec fact.sci 3.5.2 函数 1、函数的定义 function [output]=fun_name(input) 函数体 endfunction 还可以使用deff()定义内置函数,例如 deff(‘c=plus(a,b)’,’c=a*b’); 2、 使用getf()加载定义函数的脚本文件。
wk.baidu.com
第3章 SCILAB中的程序设计、 脚本文件与函数
3.3 选择结构程序设计 3.3.1 if语句 3.3.2 selectcase语句 3.4 循环结构程序设计 3.4.1 for语句 3.4.2 while 语句 3.4.3 循环语句的嵌套(多重循环语句) 3.4.4 continue语句和break语句
3、修改图形的线符 在绘图时,可以用各种符号来画曲线,例子: t=linspace(0,2*%pi,50); y=sin(t); plot(t,y,'.','marksize',4,'color',[1 0 0]); plot(t,y+1,'+','marksize',4,'color',[0.7 0.3 0]); plot(t,y+2,'x','marksize',4,'color',[0 0 1]); plot(t,y+3,'o','marksize',4,'color',[0.8 0.4 0.6]); 4、给图形加注 在scilab下,可在图的坐标轴旁和图上方加上装饰或 注解的文字,是使用xtitle()指令。 用法:xtitle(‘标題’,‘x轴注解’,‘y轴注解'); 例如: t=linspace(0,2*%pi,50); y=sin(t); plot(t,y); xtitle('sin function','t','sin(t)');
2.5.2 size函数和matrix函数 size函数获取矩阵的大小; size(矩阵名) matrix函数用已知矩阵的元素生成重新定义大小的矩阵。 e.g b=matrix(a,2,3) 2.5.3 从已知矩阵提取部分元素来构成同阶新矩阵的若干函数 可使用 triu()函数和 tril()函数提取上三角和下三角元 素来构成同阶新矩阵 e.g y=triu(a,1):将对角线向左下方移动一排
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.3 tlist和mlist类型 tlist和mlist采用域来定义表;例如: mlist类型表中的元素不可以索引来访问存储的对象。 (M.name(2)得到name的第二个元素b)
3.5.3 局部变量与全局变量、函数的嵌套定义与递归调用 使用global 定义全局变量。 在scilab中,可以嵌套定义函数,例如:
在scilab中函数还可以递归调用,例如
3.5.4 有关程序调试的几个常用指令 pause, resume, abort
第4章 计算结果可视化
4.1 引言 4.2 二维图形的绘制 4.2.1 plot指令 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');
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 结果为0 2.8 布尔型向量与矩阵的定义及基本运算 逻辑运算:与(&),或(|),非(~); 关系运算:==, >,<,>=,<=,~= 2.9 字符串型数据的定义与运算 2.9.1 字符串的定义 字符串一般用单引号(’)或双引号 (”)括起来。 还可以定义字符串矩阵。 2.9.2 字符串的运算 可采用“+”将两个字符串连起来。
6、离散点的绘制 A:3.3 4.2 11 13 5.6 8 B:2.1 5 6.7 13 17 19 x=read('A',1,6); y=read('B',1,6); plot(x,y,'.'); 必須注意的是,在plot()中必須要加入'.'這個參數,如果 不加的話,Scilab會將這些點連起來。 在绘图时,可使用函数xgrid()对所绘制的图形加上网格。 4.2.2 plot2d指令 plot2d()指令的用法与plot2d()差不多。
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’])) 矩阵(数组)或向量元素的逐项求积
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);
第1章 SCILAB简介
1.1 SCILAB的安装 SCILAB可以从官方网站 www.scilab.org上下载,用户 可以选择安装二进制版本,或者编译源程序生成SCILAB。 1.2 SCILAB主窗口介绍
1.3 SCILAB中的基本操作与预定对象 1.3.1 SCILAB的工作环境的存取 可采用save load 函数对工作环境进行存取。 例如: save work.dat save(‘work.dat’,A,x) load work.dat 1.3.2 界面层次的控制操作
M=tlist([‘V(无意义)','name','value'],['a','b','c'],[1 2 3]);
第3章 SCILAB中的程序设计、 脚本文件与函数
3.1 引言 3.2 顺序结构程序设计 3.2.1 赋值语句 变量名=表达式; 表达式是由变量名加运算符所组成的式子; 在变量名中区分大小写,有效字符是19个。 3.2.2 输入输出语句 input(); disp(); read(); write(); printf();
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 求多项式的导数
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);
2.9.3 与处理字符串有关的一些常用函数 ascii 从字符型转换成ASCII值; execstr 把字符串传给Scilab解释器; grep 查找在字符矩阵中是否出现该字符串; part 提取字字符串 strindex 在字符串中查找字符串 string 把数据转换成字符型 stripblanks 删除开头和结尾的空格 strubst 在字符矩阵中替换该字符串 strcat 把字符矩阵各元素的字符串串连起来 length 求字符矩阵各字符串元素的长度 convstr 字符串的大小写转换
2.4.2 数值型向量与矩阵的运算 包括矩阵的加法(+),减法(-),共轭转置(’),乘法(*), 左除(A/B是指 AB −1 ),右除(A\B是指 A−1B ),幂(^), 逐元相乘(.*),逐元相除(./),逐元取幂(.^) 等运算。 2.5 与数值型矩阵有关的若干常用函数 2.5.1 常用矩阵的生成函数 diag 生成对角矩阵 diag([1,2,3]) ;和空格也可以 eye 生成单位矩阵 rand 生成随机矩阵 ones 生成全部元素为1的矩阵 zeros 生成零矩阵。 linspace(或“:”) 生成线性分布的向量。
1.3.3 SCILAB主窗口中的快捷键操作
1.3.4 SCILAB中预先定义的对象 可以用Whos和 who 查看SCILAB中预先定义的对象。
第2章 数据类型
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 数值型向量与矩阵的定义 矩阵元素放在[ ]中,每行用“;”分隔开,每列用“,” (或用空格)分隔开。