Scilab程序设计教程v002.docx
- 文档编号:22863574
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:32
- 大小:25.79KB
Scilab程序设计教程v002.docx
《Scilab程序设计教程v002.docx》由会员分享,可在线阅读,更多相关《Scilab程序设计教程v002.docx(32页珍藏版)》请在冰豆网上搜索。
Scilab程序设计教程v002
Scilab程序设计教程
1.Scilab基础
1.1.Scilab概述
----Scilab(ScientificLaboratory)是以法国国立信息与自动化研究院(INRIA)的科学家为主共同开发的“开放源码”式科学计算软件,它主要有两个功能:
数值计算和计算结果可视化。
SCILAB数据类型丰富,可以很方便地实现各种矩阵运算。
SCILAB也能处理比数字矩阵复杂得多的对象,例如控制专业的多项式传递函数矩阵。
SCILAB允许用户在线建立自定义函数。
函数在SCILAB中被当作数据对象处理。
另外SCILAB具有功能丰富的图形显示能力,可以完成各种常规形式的计算结果的可视化功能。
----SCILAB为用户提供如下计算和开放式编程环境:
----1、多种容易操作的数据类型。
----2、一个作为广泛计算基础的合理有效的基本函数集。
----3、一个开放式编程环境,新的函数能很容易地被添加。
----Intersci是一个有用的发布工具,通过它能建立接口,添加新的函数及工具箱,例如增加新的FORTRAN代码和C代码到SCILAB中。
SCILAB还包括一些应用于不同科学计算领域的工具箱,例如应用于数学建模、信号处理、网络分析、决策优化、线形与非线性控制等多个方面的工具箱。
它的工具箱允许图形定义和模拟复杂的连续和离散的混杂系统。
SCILAB由3个独立的部分组成:
一个解释器、函数库(SCILAB程序)以及一个FORTRAN和C程序库。
另外SCILAB是一种解释性语言,能运行于Windows、Linux以及UNIX等操作系统环境下。
SCILAB与目前流行的MATLAB软件起源相同,都源自于CleveMoler于1980年开发的程序,其功能与MATLAB软件相似,并且表达式的语法、函数的调用和大多数控制指令都相似。
1.2.Scilab集成环境
File菜单:
->NewScilab打开新的Scilab程序
->Exec执行一个Sclab程序文件
->Open打开一个Sclab程序文件
->Load加载Scilab数据文件或者编译过的函数文件
->Save保存Scilab变量数据文件
->ChangDirectoy改变当前的Scilab工作区目录
->GetCurrentDirectoy得到当前的Scilab工作区目录
->PrintSetup打印设置
->Print打印
->Exit退出
Edit菜单:
->Selectall选择目前工作区所有文本
->Copy复制文本
->Paste粘贴
->EmptyClipboard清空剪贴板
Preferences菜单:
->Language选择语言
->Colors用户可以自己定义界面的显示颜色
->Toolbar显示和隐藏工具栏
->File'sAssociation设置文件关联
->ChooseFont设置字体
->ClearHistory按键盘的上下键可以选择最近输入的Scilab命令,本选项清除最近输入的命令提示。
->ClearCommandWindow清空屏幕显示
->Console打开Scilab命令行形式
Control菜单
->Resume回复
->Abort 取消运行
->Interrupt中止运行
->
->
->
Editor菜单
打开Scilab程序编辑器
Applications菜单
->ScicosScilab图形化仿真模块
->EditGraph编辑图形
->M2SCI将Matlab语言的命令程序转换为Scilab的程序
->BrowserVariables察看当前工作区的各个变量的值,并且可以编辑
?
菜单
->ScilabHELP帮助
->Configure帮助的显示方式设置
->ScilabDemosScilab功能演示
->
->
->
->
->
->
->
->
->
.sav文件为Scilab变量数据文件
2.Scilab数据
Scilab具有丰富的数据类型,如整型、字符型、结构体等,以上的数据类型都以矩阵的形式存在,所以矩阵是Scilab最基本的数据对象。
本章重点介绍Scilab中各种数据的表示方法和基本运算。
2.1.Scilab数据的特点
矩阵是Scilab最基本的数据对象,Scilab的大部分运算是在矩阵运算的意义下执行的。
Scilab下的变量不需要预先定义,其直接根据第一次使用时的数据类型自动确定类型。
2.2.变量和数据操作
2.2.1.变量命名
Scilab中的变量命名,变量以字母开头,后接字母、数字、下划线。
Scilab中变量区分大小写。
Scilab中函数调用时必须使用小写,否则就会出错。
2.2.2.变量赋值
Scilab中变量可以直接赋值,也可以使用以知变量组成的表达式赋值。
如:
a=1
b=a+1
Scilab命令语句后面可以不使用结束符号,但如果使用";"则表示不在屏幕输出此项运算显示。
Scialb中的注释采用 "//"只支持单行注释
Clear命令用来清除工作区所有变量内容
2.2.3.特殊变量和常数
ans:
当函数没有指定的输出时,结果就放在变量 ans中
%pi:
圆周率
可以使用BrowserVariables菜单或者browsevar();命令来在变量浏览器中察看Scilab中预定义的各个常数。
打开变量浏览器,设置显示预定义变量。
2.2.4.内存变量管理
Scilab的内存便利管理使用BrowserVariables完成。
可以完成变量的察看、编辑、删除。
Scilab工作区中的变量可以通过Save和 Load命令进行保存和读取
命令
Save文件路径
Load文件路径
2.3.Scilab矩阵
2.3.1.标量的生成
标量的生成很简单,只需要直接给出一个变量赋值:
-->a=1
a=
1.
2.3.2.向量的生成
行向量:
之间采用空格
-->s=[1234]
s=
1.2.3.4.
列向量:
之间采用;
-->s=[1;2;3;4]
s=
1.
2.
3.
4
使用“:
”生成向量
格式:
向量名称 =初值:
步长:
终值自动生成均等分的向量,默认步长为1
-->s=1:
4
s=
1.2.3.4.
-->s=1:
0.4:
4
s=
column1to6
1.1.41.82.22.63.
column7to8
3.43.8
使用Linspace函数生成向量
-->s=linspace(1,100,10)
s=
column1to6
1.12.23.34.45.56.
column7to10
67.78.89.100.
使用Logspace函数生成向量
-->s=logspace(1,100,10)
s=
1.0D+50*
column1to3
1.000D-491.000D-381.000D-27
column4to6
1.000D-160.000011000000.
column7to9
1.000D+171.000D+281.000D+39
2.3.3.矩阵的生成
矩阵的收成一般采用直接输入。
-->s=[1,2,3;4,5,6;7,8,9]
s=
1.2.3.
4.5.6.
7.8.9.
常用矩阵的生成
zeros:
生成全矩阵
-->zeros(3,2)
ans=
0.0.
0.0.
0.0.
-->zeros(3,2,3)
ans=
(:
:
1)
0.0.
0.0.
0.0.
(:
:
2)
0.0.
0.0.
0.0.
(:
:
3)
0.0.
0.0.
0.0.
ones:
生成全1矩阵
-->s=ones(3,2)
s=
1.1.
1.1.
1.1.
eye:
单位矩阵
-->s=eye(2,2)
s=
1.0.
0.1.
rand:
随机矩阵
-->s=rand(3,3)
s=
0.21132490.33032710.8497452
0.75604390.66538110.6857310
0.00022110.62839180.8782165
空矩阵
-->s=[]
s=
[]
生成没有任何元素的空矩阵
2.4.Scilab运算
2.4.1.加法和减法
矩阵的加减运算需要参与运算的两个矩阵大小相同,然后直接可以进行运算。
C=A+B
C=A-B
2.4.2.乘法运算
C=A*B矩阵乘
C=A.*B向量乘
2.4.3.除法运算
C=A\B矩阵左除
C=A/B矩阵右除
2.4.4.矩阵求逆
C=inv(A)
2.4.5.乘方运算
C=A^p矩阵乘方
C=A.^p向量乘方
2.4.6.矩阵转秩
C=A'
布尔矩阵
字符串矩阵
多项式矩阵
表(List)类型
2.5.字符串
Scilab中的字符串可以直接运算
-->s="aaa"+"bbb"
s=
aaabbb
2.5.1.字符串查找
i=strindex(str1,str2)
-->i=strindex("abcdef","bc")
i=
2.
2.5.2.大小写转换
小写变大写
-->s=convstr("abc",'u')
s=
ABC
大写变小写
-->s=convstr("ABC",'l')
s=
abc
2.5.3.字符串替换
-->strsubst('abcdef','bc','00')
ans=
a00def
附录Scilab常用命令与函数分类索引表
scilab部分函数
1.通用指令
help在线帮助
apropos文档中关键词搜寻
ans缺省变量名以及最新表达式的运算结果
clear从内存中清除变量和函数
exit关闭SCILAB
quit退出SCILAB
save把内存变量存入磁盘
exec运行脚本文件
mode文件运行中的显示格式
getversion显示SCILAB版本
ieee浮点运算溢出显示模式选择
who列出工作内存中的变量名
edit文件编辑器
type变量类型
what列出SCILAB基本命令
format设置数据输出格式
chdir改变当前工作目录
getenv给出环境值
mkdir创建目录
pwd显示当前工作目录
evstr执行表达式
2.运算符和特殊算符
加
-减
*矩阵乘
.*数组乘
^矩阵乘方
.^数组乘方
反斜杠或左除
/斜杠或右除
./或.数组除
==等号
~=不等号<小于
>大于
=大于或等于
&,and逻辑与
|,or逻辑或
~,not逻辑非
:
冒号
()园括号
[]方括号
{}花括号
.小数点
逗号
;分号
//注释号
=赋值符号
'引号
'复数转置号
.'转置号
ans最新表达式的运算结果
%eps浮点误差容限,
%i虚数单位=√(-1)
%inf正无穷大
%pi圆周率,π=3.1415926535897....
3.编程语言结构
abort中止计算或循环
break终止最内循环
case同select一起使用
continue将控制转交给外层的for或while循环
else同if一起使用
elseif同if一起使用
end结束for,while,if语句
for按规定次数重复执行语句
if条件执行语句
otherwise可同switch一起使用
pause暂停模式
return返回
select多个条件分支
then同if一起使用
while不确定次数重复执行语句
eval特定值计算
feval函数特定值计算或多变量计算
function函数文件头
global定义全局变量
isglobal检测变量是否为全局变量
error显示错误信息
lasterror显示最近的错误信息
sprintf按格式把数字转换为串
warning显示警告信息
4.基本数学函数
acos反余弦
acosh反双曲余弦
acot反余切
acoth反双曲余切
acsc反余割
acsch反双曲余割
asin反正弦
asinh反双曲正弦
atan反正切
atanh反双曲正切
cos余弦
cosh双曲余弦
cotg余切
coth双曲余切
sin正弦
sinh双曲正弦
tan正切
tanh双曲正切
exp指数
log自然对数
log10常用对数
log2以2为底的对数
sqrt平方根
abs绝对值
conj复数共轭
imag复数虚部
real复数实部
ceil向上(正无穷大方向)取整
fix向零方向取整
floor向下(负无穷大方向)取整
round四舍五入取整
sign符号函数
gsort降次排序
erf误差函数
erfc补误差函数
gammagamma函数
interp插值函数
interpln线性插值函数
intsplin样条插值函数
smooth样条平滑函数
spline样条函数
quarewave方波函数
sign符号函数
double将整数转换为双精度浮点数
5.基本矩阵函数和操作
eye单位阵
zeros全零矩阵
ones全1矩阵
rand均匀分布随机阵
genmarkov生成随机Markov矩阵
linspace线性等分向量
logspace对数等分向量
logm矩阵对数运算
cumprod矩阵元素累计乘
cumsum矩阵元素累计和
toeplitzToeplitz矩阵
disp显示矩阵和文字内容
length确定向量的长度
size确定矩阵的维数
diag创建对角阵或抽取对角向量
find找出非零元素1的下标
matrix矩阵变维
rot90矩阵逆时针旋转90度
sub2ind据全下标换算出单下标
tril抽取下三角阵
triu抽取上三角阵
conj共轭矩阵
companion伴随矩阵
det行列式的值
norm矩阵或向量范数
nnz矩阵中非零元素个数
null清空向量或矩阵中的某个元素
orth正交基
rank矩阵秩
trace矩阵迹
cond矩阵条件数
rcond逆矩阵条件数
inv矩阵的逆
luLU分解或高斯消元法
pinv伪逆
qrQR分解
givensGivens变换
linsolve求解线性方程
lyapLyapunov方程
hessHessenberg矩阵
poly特征多项式
schurSchur分解
expm矩阵指数
expm1矩阵指数的Pade逼近
expm2用泰勒级数求矩阵指数
expm3通过特征值和特征向量求矩阵指数
funm计算一般矩阵函数
logm矩阵对数
sqrtm矩阵平方根
6.特性值与奇异值
spec矩阵特征值
gspec矩阵束特征值
bdiag块矩阵,广义特征向量
eigenmarkov正则化Markov特征向量
pbig特征空间投影
svd奇异值分解
sva奇异值分解近似
7.矩阵元素运算
cumprod元素累计积
cumsum元素累计和
hist统计频数直方图
max最大值
mean平均值
median中值
min最小值
prod元素积
sort由大到小排序
std标准差
sum元素和
trapz梯形数值积分
corr求相关系数或方差
8.稀疏矩阵运算
sparse稀疏矩阵(只存储非零元素)
adj2sp邻接矩阵转换为稀疏矩阵
full稀疏矩阵转换为全矩阵
mtlb_sparse将SCILAB稀疏矩阵转换为MATLAB稀疏矩阵格式
sp2adj稀疏矩阵转换为邻接矩阵
speye稀疏矩阵方式单位阵
sprand稀疏矩阵方式随机矩阵
spzeros稀疏矩阵方式全零阵
lufact稀疏矩阵LU分解
lusolve稀疏矩阵方程求解
spchol稀疏矩阵Cholesky分解
9.输入输出函数
diary生成屏幕文本记录
disp变量显示
file文件管理
input用户键盘输入
load读已存的变量
mclose关闭文件
mget读二进制文件
mgetl按行读ASCII码文件
mgetstr读字符串中单个字
mopen打开文件
mput写二进制文件
mfscanf读ASCII码文件
print将变量记录为文件
read读矩阵变量
save存变量为二进制文件
strartup启动文件
write按格式存文件
xgetfile对话方式获取文件路径
x_dialog建立Xwindow参数输入对话框
Tk_Getvar得到Tk文件变量
Tk_EvalFile执行Tk文件
10.函数与函数库操作
deff在线定义函数
edit函数编辑器
function打开函数定义
functionsSCILAB函数或对象
genlib在给定目录下建立所有文件的
函数库
get_function_path读函数库的文件存储目录路径
getd读函数库中的全部文件
getf在文件中定义一个函数
lib函数库定义
macroSCILAB函数或对象
macrovar输入变量个数
newfun输出变量个数
11.字符串操作
code2str将SCILAB数码转换为字符串
convstr字母大小转换
emptystr清空字符串
grep搜寻相同字符串
part字符提取
str2code将字符串转换为SCILAB数码
string字符串转换
stringsSCILAB对象,字符串
strcat连接字符
strindex字符串的字符位置搜寻
strsubst字符串中的字符替换
12.日期与时间
date日期
getdate读日期与时间
timerCPU时间计时
13.二维图形函数
plot2d直角坐标下线性刻度曲线
champ2维向量场
champ1由颜色箭头表示的2维向量场
contour2d等高线图
errbar曲线上增加误差范围框线条
grayplot应用颜色表示的表面
xgrid画坐标网格线
histplot统计频数直方图
Matplot散点图阵列
14.三维图形函数
plot3d三维表面
plot3d1用颜色或灰度表示的三维表面
param3d三维中单曲线
param3d1三维中多曲线
contour三维表面上的等高线图
hist3d三维表示的统计频数直方图
geom3d三维向二维上的投影
15.线条类图形
xpoly单线条或单多边形
xpolys多线条或多各多边形
xrpoly正多边形
xsegs非连接线段
xfpoly单个多边形内填充
xfpolys多个多边形内填充
xrect矩形
xfrect单个矩形内填充
xrects多个矩形内填充
xarc单个弧线段或弧园
xarcs多个弧线段或弧园
xfarc单个弧线段或弧园填充
xfarcs多个弧线段或弧园填充
xarrows多箭头
16.图形注释,变换
xstring图形中字符
xstringb框内字符
xtitle图形标题
xaxis轴名标注
plotframe图形加框并画坐标网格线
isoview等尺寸比例显示(原图形窗口不改变)
square等尺寸比例显示(原图形窗口改变)
xsetech设置小窗口
xchange转换实数为图形象素坐标值
subplot设置多个子窗口
17.图形颜色及图形文字
colormap应用颜色图
getcolor交互式选择颜色图
addcolor增加新色于颜色图
graycolormap线性灰度图
hotcolormap热色(红到黄色)颜色图
xset图形显示方式设定
xget读当前图形显示方式设定
getsymbol交互式选择符号和尺寸
18.图形文件及图形文字
xsave将图形存储为文件
xload从磁盘中读出图形文件
xbasimp将图形按PS文件打印或存储为文件
xs2fig将图形生成Xfig格式文件
xbasc取消图形窗及其相关内容
xclear清空图形窗
driver选择图形驱动器
xinit图形驱动器初始化
xend关闭图形
xbasr图形刷新
replot更改显示范围后的图形刷新
xdel关闭图形
xname改变当前图形窗名称
19.控制分析用图形
bode伯德图坐标
gainplot幅值图坐标(伯德图中的幅值图)
nyquist奈奎斯特图
m_circleM-圆图
chart尼库拉斯图
blackBlack-图
evans根轨迹图
sgrids平面图
plzr零-极点图
zgridz平面图
20.图形应用中的其它指令
graphics图形库指令表
xclick等待鼠标在图形上的点击输入
locate由鼠标点击读入图形中的多点位置坐标
xgetmouse由鼠标点击读入图形中的当前点位置坐标
21.系统与控制
abcd状态空间矩阵
cont_mat可控矩阵
csim线性系统时域响应
dsimul状态空间的离散时域响应
feedback反馈操作符
flts时域响应(离散、采样系统〕
frep2tf基于传递函数的频域响应
freq频域响应
g_margin幅值裕量
imrep2ss基于状态空间的脉冲响应
lin线性化操作
lqeKalman滤波器
lqgLQG补偿器
lqrLQ补偿器
ltitr基于状态空间的离
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Scilab 程序设计 教程 v002