Scilab 5.3.3下模块的移植、在线帮助的编写以及工具箱的建立
科学计算自由软件SCILAB基础教程(可编辑)
科学计算自由软件SCILAB基础教程(可编辑)科学计算自由软件SCILAB基础教程第 1 章SCILAB 简介1.1 引言1.2 SCILAB 软件的构成1.3 安装 SCILAB 的系统需求1. 4 SCILAB 主窗口介绍图1.1 SCILAB 3.0 的主窗口图1.2 SCILAB 3.0 的文件菜单项图1.3 SCILAB 3.0 的编辑菜单项图1.4 SCILAB 的选择菜单项图1.5 SCILAB 的控制菜单项图1.6 SCILAB 的编辑器窗口图1.7 SCILAB 的应用窗口图1.8 SCILAB 的帮助窗口1.5 SCILAB 中的基本操作与预定对象SCILAB 中的文件操作1(5(2 界面层次的控制操作SCILAB 主窗口中的快捷键操作SCILAB 中预先定义的对象图1.9 who 指令后的SCILAB 主窗口图1.10 whos 指令后的SCILAB 主窗口1. 6 谈谈如何学习 SCILAB图1.11 SCILAB 的演示窗口图1.12 SCILAB 的选择图形演示窗口图1.13 SCILAB 的选择图形演示窗口图1.14 SCILAB 的一个图形信息窗口图1.15 SCILAB 的一个图形演示窗口第 2 章数据类型2.1 引言2.2 特定符号与常数特定符号特定常数2. 3 标量的数值计算2.4 数值型向量与矩阵的定义及基本运算数值型向量与矩阵的定义数值型向量与矩阵的运算2.5 与数值型矩阵有关的若干常用函数常用矩阵的生成函数size 函数和 matrix 函数从已知矩阵提取部分元素来构成同阶新矩阵的若干函数与方阵的行列式求值、求逆、线性代数方程组的求解、求矩阵特征值与特征向量等有关的函数与矩阵(数组)或向量有关的数据统计函数2(6 向量与矩阵(数组)元素的引用2(7 整型数组2. 8 布尔型向量与矩阵的定义及基本运算2.9 字符串型数据的定义与运算字符串的定义字符串的运算与处理字符串有关的一些常用函数2.10 多项式类型多项式的定义多项式运算有关多项式的几个常用函数2.11 表类型表类型的定义表类型数据的引用,域的插入与删除tlist 和 mlist 类型第 3 章 SCILAB 中的程序设计、脚本文件与函数3.1 引言3.2 顺序结构程序设计赋值语句输入输出语句3.3 选择结构程序设计if 语句图3.1 不完整if 语句的框图图3.2 完整if 语句的框图select_case 语句图3.3 select 语句框图(else 缺省情形)3.4 循环结构程序设计for 语句图3.4 for 语句的框图while 语句图3.5 while 型循环框图循环语句的嵌套(多重循环语句)continue 语句和 break 语句图3.6 循环体内含有continue 语句的框图图3.7 循环体内含有break 语句的框图3.5 脚本文件与函数脚本文件函数局部变量与全局变量、函数的嵌套定义与递归调用图3.8 用递归调用求 n!示意图(n 4 )有关程序调试的几个常用指令3.6 函数的应用函数名作形式参数――二分法求非线性方程的根图3.9 用二分法求方程p (x ) 0 的根的框图函数的递归调用――求两正整数的最大公因子图3.10 用递归调用求n!示意图多重循环的应用――线性方程组的顺序消元法图3.11 顺序消元法的框图第 4 章计算结果可视化4.1 引言图4.1 图形窗口图4.2 图形窗口的文件菜单图4.3 图形窗口的工具菜单图4.4 图形窗口的编辑菜单4.2 二维图形的绘制plot 指令图4.5 利用指令plot (y,'X', 'Y', 'y f(x )' )画图图4.6 利用指令plot 在同一窗口画两条曲线图4.7 利用指令plot (x,y )画图图4.8 利用指令plot (z,y )在同一窗口画两条曲线plot2d 指令图4.9 利用指令plot2d (x,y )画y sinx 的图形图4.10 利用指令plot2d (x,y )在同一窗口画两条曲线图4.11 利用指令plot2d (x,y, 画曲线y sinx图4.12 利用指令plot2d (x,y, opt+args )在同一窗口画三条曲线图4.13 利用指令plot2d2 (x,y )画曲线y sin2x图4.14 利用指令plot2d3 (x,y )画曲线y sin2x图4.15 利用指令plot2d4 (x,y )画曲线y sin2x4.3 三维图形的绘制函数plot3d( )――三维曲面的绘制图4.16 利用指令plot3d (x,y …)画曲面z sinxcosy图4.17 利用指令plot3d (x,y …)画曲面z x2+y2图4.18 利用指令plot3d (x,y …)画曲面z xy图4.19 利用指令plot3d (x,y …)画曲面z sinxcosy 图4.20 利用指令plot3d 在同一坐标系中画两张曲面函数param3d――三维空间曲线的绘制图4.21 利用指令param3d 画螺旋线图图4.22 利用指令param3d 在同一坐。
Scilab
Scilab 常⽤指令⼀览表1 通⽤指令help 在线帮助apropos ⽂档中关键词搜寻ans 缺省变量名以及最新表达式的运算结果clear 从内存中清除变量和函数exit 关闭scilabquit 退出scilabsave 把内存变量存⼊磁盘exec 运⾏脚本⽂件mode ⽂件运⾏中的显⽰格式getversion 显⽰scilab版本ieee 浮点运算溢出显⽰模式选择who 列出⼯作内存中的变量名edit ⽂件编辑器type 变量类型what 列出scilab基本命令format 设置数据输出格式chdir 改变当前⼯作⽬录getenv 给出环境值mkdir 创建⽬录pwd 显⽰当前⼯作⽬录evstr 执⾏表达式2 运算符和特殊算符+ 加- 减* 矩阵乘.* 数组乘^ 矩阵乘⽅.^ 数组乘⽅\ 反斜杠或左除/ 斜杠或右除./或.\ 数组除== 等号~= 不等号< ⼩于> ⼤于<= ⼩于等于>= ⼤于等于&,and 逻辑与|,or 逻辑或-,not 逻辑⾮:冒号()圆括号[] ⽅括号{} 花括号. ⼩数点,逗号;分号// 注释号= 赋值符号' 引号' 复数转置号.' 转置号ans 最新表达式的运算结果%eps 浮点误差容限%i 虚数单位%inf 正⽆穷⼤%pi 圆周率3 编程语⾔结构abort 中⽌计算或循环break 终⽌最内循环case 同select⼀起使⽤continue 将控制转交给外层的for或while循环else 同if⼀起使⽤elseif 同if⼀起使⽤end 结束for,while,if语句for 按规定次数重复执⾏语句otherwise 可同switch⼀起使⽤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 双曲余弦cot 余切coth 双曲余切sin 正弦sinh 双曲正弦tan 正切tanh 双曲正切exp 指数log ⾃然对数log10 常⽤对数log2 以2为底的对数sqrt 平⽅根abs 绝对值conj 复数共轭imag 复数虚部real 复数实部ceil 向正⽆穷⼤⽅向取整floor 向负⽆穷⼤⽅向取整fix 向零⽅向取整round 四舍五⼊取整sign 符号函数gsort 降次排序erf 误差函数erfc 补误差函数gamma gamma函数interp 插值函数interpln 线性插值函数intsplin 样条插值函数smooth 样条平滑函数spline 样条函数quarewave ⽅波函数double 将整数转换为双精度浮点数5 基本矩阵函数和操作eye 单位矩阵zeros 全零矩阵ones 全1矩阵rand 均匀分布随机阵genmarkov ⽣成随机Markov矩阵linspace 线性等分向量logspace 对数等分向量logm 矩阵对数运算cumprod 矩阵元素累计乘cumsum 矩阵元素累计和toeplitz Toeplitz矩阵disp 显⽰矩阵和⽂字内容length 确定向量的长度size 确定矩阵的维数diag 创建对⾓矩阵或抽取对⾓向量find 找出⾮零元素1的下标rot90 矩阵逆时针旋转90度sub2ind 全下标转换为单下标tril 抽取下三⾓阵triu 抽取上三⾓阵conj 共轭矩阵companion 伴随矩阵det ⾏列式的值norm 矩阵或向量范数nnz 矩阵中⾮零元素的个数null 清空向量或矩阵中的某个元素orth 正交基rank 矩阵秩trace 矩阵迹cond 矩阵条件数inv 矩阵的逆rcond 逆矩阵条件数lu LU分解或⾼斯消元法pinv 伪逆qr QR分解givens Givens变换linsolve 求解线性⽅程lyap Lyapunov⽅程hess Hessenberg矩阵poly 特征多项式schur Schur分解expm 矩阵指数expm1 矩阵指数的Pade逼近expm2 ⽤泰勒级数求矩阵指数expm3 通过特征值和特征向量求矩阵指数funm 计算⼀般矩阵函数logm 矩阵对数sqrtm 矩阵平⽅根6 特性值与奇异值spec 矩阵特征值gspec 矩阵束特征值bdiag 块矩阵,⼴义特征向量eigenmar- 正则化Markov特征kov 向量pbig 特征空间投影svd 奇异值分解sva 奇异值分解近似7 矩阵元素运算cumprod 元素累计积cumsum 元素累计和hist 统计频数直⽅图max 最⼤值min 最⼩值mean 平均值median 中值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 ⽂件管理load 读已经存在的变量mclose 关闭⽂件mget 读⼆进制⽂件mgetl 按⾏读ascii码⽂件mgetstr 读字符串中单个字mopen 打开⽂件mput 写⼆进制⽂件mfscanf 读ascii码⽂件print 将变量记录为⽂件read 读矩阵变量save 将变量存为⼆进制⽂件startup 启动⽂件write 按格式存⽂件xgetfile 对话⽅式获取⽂件路径x_dialog 建⽴xwindows参数输⼊对话框Tk_Getvar 得到Tk⽂件变量Tk_EvalFile 执⾏Tk⽂件10 函数与函数库操作deff 在线定义函数edit 函数编辑器function 打开函数定义functions scilab函数或对象genlib 在给定⽬录下建⽴所有⽂件的函数库get_function_path 读函数库的⽂件存储⽬录路径getd 读函数库中的全部⽂件getf 在⽂件中定义⼀个函数lib 函数库定义macro scilab函数或对象macrovar 输⼊变量个数newfun 输出变量个数11 字符串操作code2str 将scilab数码转换为字符串convstr 字母⼤⼩转换emptystr 清空字符串grep 搜寻相同字符串part 字符提取str2code 将字符串转换为scilab数码string 字符串转换strings scilab对象,字符串strcat 连接字符stringex 字符串的字符位置搜寻strsubst 字符串中的字符替换12 ⽇期与时间date ⽇期getdate 读⽇期与时间timer cpu时间计时13 ⼆维图形函数plot2d 直⾓坐标下线性刻度曲线champ ⼆维向量场champ1 由颜⾊箭头表⽰的⼆维向量场contour2d 等⾼线图errbar 曲线上增加误差范围框线条grayplot 应⽤颜⾊表⽰的表⾯xgrid 画坐标⽹格线histplot 统计频数直⽅图Matplot 散点图阵列14 三维图形函数plot3d 三维表⾯plot3dl ⽤颜⾊或灰度表⽰的三维表⾯param3d 三维中单曲线param3dl 三维中多曲线contour 三维表⾯上的等⾼线图hist3d 三维表⽰的统计频数直⽅图geom3d 三维向⼆维上的投影15 线条类图形xpoly 单线条或单多边形xpolys 多线条或多多边形xrpoly 正多边形xsegs ⾮连接线段xfpolys 多个多边形内填充xrect 矩形xfrect 单个矩形内填充xfrects 多个矩形内填充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格式⽂件xclear 清空图形窗⼝driver 选择图形驱动器xinit 图形驱动器初始化xend 关闭图形xbasr 图形刷新replot 更改显⽰范围后的图形刷新xdel 关闭图形xname 改变当前图形窗⼝名称19 控制分析图形bode 伯德图坐标gainplot 幅值图坐标(伯德图中的幅值图)nyquist 乃奎斯特图m_circle m-圆图chart 尼库拉斯图black black-图evans 根轨迹图sgrid s平⾯图plzr 零极点图zgrid z平⾯图20 图形应⽤中的其他指令graphics 图形库指令表xclick 等待⿏标在图形上的单击输⼊locate 由单击读⼊图形中的多点位置坐标xgetmouse 由单击读⼊图形中当前点位置坐标21 系统与控制abcd 状态空间矩阵cont_mat 可控矩阵csim 线性系统时域响应dsimul 状态空间的离散时域响应feedback 反馈操作符flts 时域响应(离散,采样系统)freq2tf 基于传递函数的频域响应freq 频域响应g_margin 幅值裕量imrep2ss 基于状态空间的脉冲响应lqe kalman滤波器lqg lqg补偿器lqr lq补偿器ltitr 基于状态空间的离散时域响应obscont 基于观测器的控制器obsv_mat 观测矩阵p_margin 相位裕量phasemag 相位与幅值计算ppol 极点配置repfreq 频域响应ricc riccati⽅程rtitr 基于传递函数的离散时域响应sm2ss 系统矩阵到状态空间的变换ss2ss 反馈连接的状态空间到状态空间的变换ss2tf 状态空间到传递函数的变换stabil 稳定性计算tf2ss 传递函数到状态空间的变换time_id siso系统最⼩⽅差辨识22 鲁棒控制augment 被控对象增⼴操作bstap Hankel矩阵近似ccontrg H⽆穷⼤控制器dhnorm 离散H⽆穷⼤范数h2norm H2范数h_cl 闭环矩阵h_inf h⽆穷⼤控制器h_norm h⽆穷⼤范数hankelsv hankel矩阵奇异值leqr h⽆穷⼤控制器的lq增益linf ⽆穷范数riccati riccati矩阵sensi 敏感函数23 动态系统arma arma模型arma2p 基于ar模型获得多项式矩阵armac armax辨识arsimul armax系统仿真noisegen 噪声信号发⽣器odedi 常微分⽅程仿真检测prbs_a 伪随机⼆进制序列发⽣器reglin 线性拟合24 系统与控制实例artest arnold动态系统bifish 鱼群⼈⼝发展的离散时域模型boucle 具有观测器的动态系统相位图chaintest ⽣物链模型gpech 渔业模型fusee 登录⽕箭问题lotest lorennz吸引⼦mine 采矿问题obscontl 可控可观系统portr3d 三维相位图portrait ⼆维相位图recur 双线性回归⽅程systems 动态系统tangent 动态系统的线性化tadinit 动态系统的交互初始化25 ⾮线性⼯具(优化与仿真)bvode 边界值问题的常微分⽅程dasrt 隐式微分⽅程过零解dassl 代数微分⽅程datafit 基于测量数据的参数辨识derivative 导数计算fsolve ⾮线性函数过零解impl 线性微分⽅程int2d ⼆维定积分int3d 三维定积分intg 不定积分leastsq ⾮线性最⼩⼆乘法linpro 线性规划lmisolver 线性不等矩阵ode_discrete 离散常微分⽅程ode_root 常微分⽅程根解odedc 连续离散常微分⽅程optim ⾮线性优化quapro 线性⼆次型规划semidef 半正定规划26 多项式计算coeff 多项式系数coffg 多项式矩阵逆degree 多项式阶数denom 分母项derivat 有理矩阵求导determ 矩阵⾏列式值factors 因式分解hermit hermit型horner 多项式计算invr 有理矩阵逆lcm 最⼩公倍数ldiv 多项式矩阵长除numer 分⼦项pdiv 多项式矩阵除pol2des 将多项式矩阵变换为表达式pol2str 将多项式变换为字符串polfact 最⼩因式residu 余量roots 多项式的根simp 多项式的简化systmat 系统矩阵27 信号处理%asn 椭圆积分%k jacobi完全椭圆积分%sn jacobi椭圆函数analpf 模拟量低通滤波器buttmag butterworth滤波器响应cepstrum 倒谱计算cheb1mag chebyshev⼀型响应cheb2mag chebyshev⼆型响应chepol chebyshev多项式convol 卷积corr 相关,协⽅差cspect 谱估计dft 离散傅⽴叶变换fft 快速傅⽴叶变换filter 滤波器建模fsfirlin fir滤波器设计hank 协⽅差矩阵到hankel矩阵变换hilb hilbert变换iir iir数字滤波器intdec 信号采样率更改kalm kalman 滤波器更新mese 最⼤熵谱估计mfft 多维快速傅⽴叶变换mrfit 频率响应拟合phc maikov过程srkf kalman滤波器平⽅根sskf 稳态kalman滤波器system 观测更新wfir 线性相位fir滤波器weiener weiener滤波器window 对称窗函数yulewalk 最⼩⼆乘滤波器zpbutt buthererworth模拟滤波器zpchl chebyshev模拟滤波器28 ⾳频信号analyze ⾳频信号频域图auread 读*.au⾳频⽂件auwrite 写*.au⾳频⽂件lin2mu 将线性信号转换为miu率码信号loadwave 取*.wav⾳频⽂件mapsound ⾳频信号图⽰mu2lin 将mu码率信号转换为线性信号playsnd ⾳频信号播放wavread 读*.wav⾳频⽂件wavwrite 写*.wav⾳频⽂件29 语⾔与数据转换⼯具ascii 字符串的ascii码excel2sci 读ascii格式的excel⽂件fun2string 将scilab函数⽣成ascii码mfile2sci 将matlab的m格式⽂件转换为sci格式⽂件mtlb_load 取matlab第四版本⽂件中变量matlb_save 按matlab第四版本⽂件格式存变量pol2tex 将多项式转换为tex格式sci2for 将scilab函数转换为fortran格式⽂件texprint 按tex格式输出scilab对象translatepaths 将⼦⽬录下的所有matlab⽂件转换为sci⽂件格式。
Matlab如何添加新的工具箱经验总结Word版
Matlab如何添加新的工具箱-经验总结最近在学习遗传算法与免疫算法,所以涉及到matlab的工具箱的应用,尤其gads 工具箱,所以在网上下载了一些工具箱,但是不会用,在网上找了点资料,留着以后也可以用。
1,我是单独下载的工具箱,把新的工具箱拷贝到某个目录(我的是C:\Program Files\MATLAB\R2010\toolbox)。
注意:你要是添加的很多个m文件,那就把这些m文件直接拷到再下一层你想要的工具箱的文件夹里例如,我要添加的是遗传工具箱,在刚才的文件夹下我已经有gads(遗传工具箱)文件夹了,但有的m文件还没有,我就把新的m文件统统拷到C:\Program Files\MATLAB\R2010\toolbox\gads目录下了如果你连某工具箱(你打算添加的)的文件夹都没有,那就把文件夹和文件一起拷到C:\Program Files\MATLAB\R2010\toolbox下。
先把工具箱保存到MATLAB安装目录的根目录下面,然后运行matlab---->file---->set path---->add folder 然后把你的工具箱文件夹添加进去就可以了2 在matlab的菜单file下面的set path把它(C:\ProgramFiles\MATLAB\R2010\toolbox\gads)加上。
3 把路径加进去后在file→Preferences→General的Toolbox Path Caching 里点击update Toolbox Path Cache更新一下。
记得一定要更新!我就是没更新,所以添加了路径,一运行还是不行。
后来更新了才行。
4 用which newtoolbox_command.m来检验是否可以访问。
如果能够显示新设置的路径,则表明该工具箱可以使用了。
这个我也不知道怎么用。
怎么检验?在命令窗口输入whichnewtoolbox_command.m?还是打开which newtoolbox_command.m文件(我搜索了,没找到这个文件啊)我一直没搞懂。
scilab_使用教程
2.9.3 与处理字符串有关的一些常用函数 ascii 从字符型转换成ASCII值; execstr 把字符串传给Scilab解释器; grep 查找在字符矩阵中是否出现该字符串; part 提取字字符串 strindex 在字符串中查找字符串 string 把数据转换成字符型 stripblanks 删除开头和结尾的空格 strubst 在字符矩阵中替换该字符串 strcat 把字符矩阵各元素的字符串串连起来 length 求字符矩阵各字符串元素的长度 convstr 字符串的大小写转换
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()差不多。
SCICOS动态系统建构及模拟器 使用介绍
中文ScilabSCICOS-動態系統建構及模擬器使用介紹(Scicos–Scilab功能類似Simulink–Matlab)∗R.Nikoukhah S.Steer Scilab中文開發群(翻譯)目錄1中文版前言12介紹23Scicos方塊圖編輯器43.1設定功能塊參數 (4)3.2模擬 (4)3.3其他功能 (4)4基本功能塊(Blocks)類型64.1連續功能塊:CBB(Continuous Basic Block) (6)4.2離散功能塊:DBB(Discrete Basic Block) (6)4.3跨零偵測功能塊:ZBB(Zero Crossing Basic Block) (7)4.4同步功能塊:SBB(Synchro Basic Block) (7)5時間參數的相依及繼承86建構功能塊96.1介面函數 (9)6.1.1語法 (9)6.1.1.1Parameters (9)6.1.2功能塊之資料結構及定義 (11)6.2運算函數 (12)6.2.1行為(Behavior) (12)∗Scicos內附於Scilab內,以開放軟體形式一起散發。
有關Scilab請參考:http://www-rocq.inria.fr/scilab/或ADE 中文Scilab主網頁目錄6.2.2運算函數的類型 (13)6.2.2.1運算函數:型態0 (14)6.2.2.2運算函數:型態1 (14)6.2.2.3Fortran例 (14)6.2.2.4C例 (14)6.2.2.5運算函數:型態2 (14)6.2.2.6運算函數:型態3 (15)6.2.2.7例 (15)6.2.2.8例 (16)6.2.2.9運算函數:型態4 (16)6.2.2.10運算函數:型態5 (18)6.2.2.11例 (18)6.2.2.12例 (19)7結語20中文版前言1中文版前言本文以英文版:SCICOS-A Dynamic System Builder and Simulator之L A T E X原始文檔為本進行中文翻譯。
如何运用simplicity studio5中的例程
Simplicity Studio5是一个集成开发环境(IDE),它提供了许多示例代码和项目模板,可以帮助开发人员快速创建应用程序。
以下是如何运用Simplicity Studio5中的例程的步骤:
1. 打开Simplicity Studio5并选择“File”>“New”>“Project”。
2. 在弹出的窗口中,选择所需的项目类型(例如:Android应用程序、iOS应用程序等)。
3. 点击“Next”按钮,然后选择所需的平台和配置选项。
4. 点击“Finish”按钮以创建新项目。
5. 在解决方案资源管理器中,右键单击“src”文件夹,然后选择“New”>“Folder”,输入文件夹名称(例如:“examples”)并按Enter键。
6. 将Simplicity Studio5提供的示例代码或项目模板复制到新创建的文件夹中。
7. 在解决方案资源管理器中,双击“examples”文件夹下的代码文件或项目文件以打开它们。
8. 根据需要修改代码或项目设置。
9. 点击工具栏上的“Build”按钮(或按F7键)以编译代码。
10. 如果编译成功,点击工具栏上的“Run”按钮(或按F5键)以运行程序。
11. 查看输出窗口以查看程序的输出结果。
matlab神经网络工具箱怎么用
matlab神经网络工具箱怎么用标题:Matlab神经网络工具箱的使用方法导言:Matlab神经网络工具箱是一个功能强大的工具,用于建立、训练和评估各种类型的神经网络。
本文将介绍如何使用Matlab神经网络工具箱进行神经网络的建立、训练和评估,帮助您更好地理解和使用这个工具箱。
一、Matlab神经网络工具箱的安装首先,您需要确保已成功安装了Matlab软件。
然后,您可以通过以下步骤来安装Matlab神经网络工具箱:1. 打开Matlab软件。
2. 在工具栏上选择“工具”菜单。
3. 在下拉菜单中选择“添加预定目录”。
4. 在弹出的窗口中,选择“文件夹”选项。
5. 点击“浏览”按钮,并选择包含神经网络工具箱的文件夹。
6. 点击“选择文件夹”按钮,然后点击“添加文件夹”按钮。
7. 点击“关闭”按钮,完成神经网络工具箱的安装。
二、神经网络的建立Matlab神经网络工具箱提供了多种类型的神经网络模型,如前馈神经网络、递归神经网络和自组织神经网络。
下面我们以前馈神经网络为例,介绍神经网络的建立方法:1. 打开Matlab软件,并在命令窗口中输入“nprtool”命令,打开“神经网络模式选择器”窗口。
2. 在“神经网络模式选择器”窗口中,选择“构建”按钮。
3. 在“神经网络模式选择器”窗口中,选择“前馈神经网络”选项,并点击“下一步”按钮。
4. 在“选择网络架构”窗口中,选择神经网络的层数、神经元数量和输入、输出数据的维度。
5. 点击“下一步”按钮,然后点击“完成”按钮,完成神经网络的建立。
三、神经网络的训练神经网络的训练是指通过将已知的输入和输出数据进行反复迭代调整网络参数,从而使网络能够更好地拟合输入输出之间的关系。
下面我们介绍神经网络的训练方法:1.在命令窗口中输入“trainlm”命令,选择Levenberg-Marquardt算法作为训练函数。
2.输入训练数据和目标数据,通过“trains”命令开始训练神经网络。
《讲Scilab基本操作》课件
通过这个PPT课件,我们将学习Scilab的基本操作,让你在科学计算方面快速 上手。准备好探索Scilab的世界吧!
一、Scilab的介绍
Scilab的概述
了解Scilab是一个开源的数 值计算和数据分析软件, 适用于工程学、科学研究 和教育领域。
Scilab的特点
探讨Scilab在不同领域的应用 前景,如工程学、科学研究 和数据分析。
Scilab的学习建议和 总结
提供学习Scilab的建议和总结, 帮助大家更好地掌握Scilab的 基本操作。
Scilab的数据分析与拟 合
掌握如何使用Scilab进行数 据分析和曲线拟合,以从 数据中获得有用信息。
Scilab与其他编程语言 的集成
了解如何将Scilab与其他编 程语言集成,从ቤተ መጻሕፍቲ ባይዱ扩展其 功能和应用领域。
五、Scilab常见问题解答
1 Scilab的常见错误及解决方法
指导解决常见的Scilab错误,如语法问题、函数调用和脚本调试。
2 Scilab的优化与调试技巧
分享Scilab的性能优化和调试技巧,确保代码的正确性和效率。
3 Scilab的相关资源推荐
为学习Scilab提供相关资源推荐,如文档、教程和论坛。
结束语
Scilab的未来发展
展望Scilab的未来发展方向, 包括新功能、性能改进和社 区贡献。
Scilab的应用前景
掌握Scilab的特性,如多维 数组、函数库、图形显示 和内置编辑器等。
Scilab的优势
了解为什么Scilab是一种强 大的工具,可以用于解决 复杂的数学和工程问题。
二、Scilab的安装与环境配置
高中数学里,scilab 的辅助应用
簡單的快速入門:
1。把 help 的範例碼存到文字檔 這是 help 裏的 xgrid 的範例(在 scilab 主控台(console)下指令 help xgrid) x=[0:0.1:2*%pi]'; plot2d(sin(x)) xgrid(3) 存在 SCI/myexam/xgrid_01.txt (SCI 是安裝的路徑,在 win xp 下可能是 D:\Program Files\scilab-5.2.2\) 2。使用 exec 指令執行 然在在 scilab 主控台(console)下指令。 exec SCI/myexam/xgrid_01.txt 3。看結果
執行後輸出 ym = 1.5 xm = 0.5
二。求極限的輔助:
將 scilab 當電子計算機使用,拿來求極限,極限常常是逼近於 0,小數點的計算對一般人筆 算很吃力,交給電腦算完後,畫成圖,快速抓到感覺 題目: sin(x)/x 在 x=0 的極限 指令如下 x=[-0.1 -0.01 -0.001 -0.0001 0.0001 0.001 0.01 ] y=sin(x) z=y./x 輸出如下 x = – 0.1 - 0.01 - 0.001 - 0.0001 0.0001 0.001 0.01 y = column 1 to 6 - 0.0998334 - 0.0099998 - 0.0010000 - 0.0001 0.0001 0.0010000 column 7 0.0099998 z = column 1 to 6 0.9983342 0.9999833 0.9999998 1. 1. 0.9999998 column 7 0.9999833 雖然是很尋常的事,但是想想,當 x 趨進於 0,其實 有 x^2(次方) ,x^3, x^1/2(平方根)也趨 進於 0,但是就是沒有像 sin(x)和 x 趨近的速度那麼一致,舉 x^1/2(平方根,sqrt(x))為例: x=[0.0001 0.001 0.01 0.1] y=sqrt(x) z=y./x 計算結果為 y=0.01 0.0316228 0.1 0.3162278 z=100. 31.622777 10. 3.1622777 (發散的結果) 再舉 x^2(次方) 為例: x=[-0.1 -0.01 -0.001 -0.0001 0.0001 0.001 0.01 0.1] y=x^2 z=y./x 計算結果為 y=0.01 0.0001 0.000001 1.000D-08 1.000D-08 0.000001 0.0001 z=- 0.1 - 0.01 - 0.001 - 0.0001 0.0001 0.001 0.01 0.1 (趨進於 0)
scilab指令及应用
18. 图形文件及图形文字
3
xsave 将图形存储为文件 xload 从磁盘中读出图形文件 xbasimp 将图形按PS文件 打印或存储为文件 xs2fig 将图形生成Xfig 格式文件 xbasc 取消图形窗及其相关内 容 xclear 清空图形窗 driver 选择图形驱动器 xinit 图形驱动器初始化 xend 关闭 图形 xbasr 图形刷新 replot 更改显示范围后的图形刷新 xdel 关闭图形 xname 改变当前图形窗名称
17. 图形颜色及图形文字 colormap 应用颜色图 getcolor 交互式选择颜色图 addcolor 增加新色于颜色图 graycolormap 线性灰度图 hotcolormap 热色(红到黄色)颜色图 xset 图形显示方 式设定 xget 读当前图形显示方式设定 getsymbol 交互式选择符号和尺寸
一讲Scilab基本操作
Scilab缺省操作桌面, Command命令窗口
【例1 1 求 12 2 7 4 32 计算结果. 】
『操作』
如右图,在Scilab的 Command 窗口下用 键盘输入表达式后,按【Enter】键执行指 令, Command 窗口下显示计算结果。
1.Scilab 基本操作
scilab4简介简单应用高中数学中的算法初步scilab缺省操作桌面command命令窗口scilab是以法国国立信息与自动化研究院inria的科学家为主开发的开放源码式科学计算自由软件
【教育类精品资 料】
高中数学中的算法初步
Scilab4 简介
一. 基本操作 二. 语言结构 四. 基本绘图 五. 简单应用
-->A=[1,2,3; 4,5,6] A = 1. 4. -->size(A) ans = 2. 3. B=[1,0,0; 4,0,6];
// 对矩阵A,B求和得矩阵A+B
2. 5.
3. 6. // 使用函数size(A)可以得到矩阵A的维数
-->A=[1,2,3; 4,5,6]; -->A+B ans = 2. 8. 2. 5.
-->x=0:0.2:1; -->y=x.*x
// 生成当x=0,0.2,0.4,0.6,0.8,1时, 0.16 0.36 0.64
y=x2函数值序列
y =
0 0.04 1.
>> 表达式 y=x.*x中的“.*”表示对应元素相乘; 另外(./)表示对应元素相除,(.^)表示对应元素求幂.
-->x=0:0.2:1; -->y=x.^2 y =
-->A=ones(1,4) A = 1. -->A=eye(3,3) A = 1. 0. 0. 0. 1. 0. 0. 0. 1. 1. 1.
Scilab常用指令一览表
Scilab 常用指令一览表Scilab常用指令一览表2011-04-11 22:451通用指令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虚数单位%inf正无穷大%pi圆周率3编程语言结构abort中止计算或循环break终止最内循环case同select一起使用continue将控制转交给外层的for或while循环else同if一起使用elseif同if一起使用end结束for,while,if语句for按规定次数重复执行语句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双曲余弦cot余切coth双曲余切sin正弦sinh双曲正弦tan正切tanh双曲正切exp指数log自然对数log10常用对数log2以2为底的对数sqrt平方根abs绝对值conj复数共轭imag复数虚部real复数实部ceil向正无穷大方向取整floor向负无穷大方向取整fix向零方向取整round四舍五入取整sign符号函数gsort降次排序erf误差函数erfc补误差函数gamma gamma函数interp插值函数interpln线性插值函数intsplin样条插值函数smooth样条平滑函数spline样条函数quarewave方波函数double将整数转换为双精度浮点数5基本矩阵函数和操作eye单位矩阵zeros全零矩阵ones全1矩阵rand均匀分布随机阵genmar kov生成随机Markov矩阵linspace线性等分向量logspace对数等分向量logm矩阵对数运算cumprod矩阵元素累计乘cumsum矩阵元素累计和toeplitz Toeplitz矩阵disp显示矩阵和文字内容length确定向量的长度size确定矩阵的维数diag创建对角矩阵或抽取对角向量find找出非零元素1的下标matrix矩阵变维rot90矩阵逆时针旋转90度sub2ind全下标转换为单下标tril抽取下三角阵triu抽取上三角阵conj共轭矩阵companion伴随矩阵det行列式的值norm矩阵或向量范数nnz矩阵中非零元素的个数null清空向量或矩阵中的某个元素orth正交基rank矩阵秩trace矩阵迹cond矩阵条件数inv矩阵的逆rcond逆矩阵条件数lu LU分解或高斯消元法pinv伪逆givens Givens变换linsolve求解线性方程lyap Lyapunov方程hess Hessenberg矩阵poly特征多项式schur Schur分解expm矩阵指数expm1矩阵指数的Pade逼近expm2用泰勒级数求矩阵指数expm3通过特征值和特征向量求矩阵指数funm计算一般矩阵函数logm矩阵对数sqrtm矩阵平方根6特性值与奇异值spec矩阵特征值gspec矩阵束特征值bdiag块矩阵,广义特征向量eigenmar-正则化Markov特征kov向量pbig特征空间投影svd奇异值分解sva奇异值分解近似7矩阵元素运算cumprod元素累计积cumsum元素累计和hist统计频数直方图min最小值mean平均值median中值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将变量存为二进制文件startup启动文件write按格式存文件xgetfile对话方式获取文件路径x_dialog建立xwindows参数输入对话框Tk_Getvar得到Tk文件变量Tk_EvalFile执行Tk文件10函数与函数库操作deff在线定义函数edit函数编辑器function打开函数定义functions scilab函数或对象genlib在给定目录下建立所有文件的函数库get_function_path读函数库的文件存储目录路径getd读函数库中的全部文件getf在文件中定义一个函数lib函数库定义macro scilab函数或对象macrovar输入变量个数newfun输出变量个数11字符串操作code2str将scilab数码转换为字符串convstr字母大小转换emptystr清空字符串grep搜寻相同字符串part字符提取str2code将字符串转换为scilab数码string字符串转换strings scilab对象,字符串strcat连接字符stringex字符串的字符位置搜寻strsubst字符串中的字符替换12日期与时间date日期getdate读日期与时间timer cpu时间计时13二维图形函数plot2d直角坐标下线性刻度曲线champ二维向量场champ1由颜色箭头表示的二维向量场contour2d等高线图errbar曲线上增加误差范围框线条grayplot应用颜色表示的表面xgrid画坐标网格线histplot统计频数直方图Matplot散点图阵列14三维图形函数plot3d三维表面plot3dl用颜色或灰度表示的三维表面param3d三维中单曲线param3dl三维中多曲线contour三维表面上的等高线图hist3d三维表示的统计频数直方图geom3d三维向二维上的投影15线条类图形xpoly单线条或单多边形xpolys多线条或多多边形xrpoly正多边形xsegs非连接线段xfpoly单个多边形内填充xfpolys多个多边形内填充xrect矩形xfrect单个矩形内填充xfrects多个矩形内填充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格式文件xclear清空图形窗口driver选择图形驱动器xinit图形驱动器初始化xend关闭图形xbasr图形刷新replot更改显示范围后的图形刷新xdel关闭图形xname改变当前图形窗口名称19控制分析图形bode伯德图坐标gainplot幅值图坐标(伯德图中的幅值图) nyquist乃奎斯特图m_circle m-圆图chart尼库拉斯图black black-图evans根轨迹图sgr id s平面图plzr零极点图zgrid z平面图20图形应用中的其他指令graphics图形库指令表xclick等待鼠标在图形上的单击输入locate由单击读入图形中的多点位置坐标xgetmouse由单击读入图形中当前点位置坐标21系统与控制abcd状态空间矩阵cont_mat可控矩阵csim线性系统时域响应dsimul状态空间的离散时域响应feedback反馈操作符flts时域响应(离散,采样系统)freq2tf基于传递函数的频域响应freq频域响应g_margin幅值裕量imrep2ss基于状态空间的脉冲响应lin线性化操作lqe kalman滤波器lqg lqg补偿器lqr lq补偿器ltitr基于状态空间的离散时域响应obscont基于观测器的控制器obsv_mat观测矩阵p_margin相位裕量phasemag相位与幅值计算ppol极点配置repfreq频域响应ricc riccati方程rtitr基于传递函数的离散时域响应sm2ss系统矩阵到状态空间的变换ss2ss反馈连接的状态空间到状态空间的变换ss2tf状态空间到传递函数的变换stabil稳定性计算tf2ss传递函数到状态空间的变换time_id siso系统最小方差辨识22鲁棒控制augment被控对象增广操作bstap Hankel矩阵近似ccontrg H无穷大控制器dhnorm离散H无穷大范数h2norm H2范数h_cl闭环矩阵h_inf h无穷大控制器h_norm h无穷大范数hankelsv hankel矩阵奇异值leqr h无穷大控制器的lq增益linf无穷范数riccati riccati矩阵sensi敏感函数23动态系统arma arma模型arma2p基于ar模型获得多项式矩阵armac armax辨识arsimul armax系统仿真noisegen噪声信号发生器odedi常微分方程仿真检测prbs_a伪随机二进制序列发生器reglin线性拟合24系统与控制实例artest arnold动态系统bifish鱼群人口发展的离散时域模型boucle具有观测器的动态系统相位图chaintest生物链模型gpech渔业模型fusee登录火箭问题lotest lorennz吸引子mine采矿问题obscontl可控可观系统portr3d三维相位图portrait二维相位图recur双线性回归方程systems动态系统tangent动态系统的线性化tadinit动态系统的交互初始化25非线性工具(优化与仿真) bvode边界值问题的常微分方程dasrt隐式微分方程过零解dassl代数微分方程datafit基于测量数据的参数辨识derivative导数计算fsolve非线性函数过零解impl线性微分方程int2d二维定积分int3d三维定积分intg不定积分leastsq非线性最小二乘法linpro线性规划lmisolver线性不等矩阵ode常微分方程ode_discrete离散常微分方程ode_root常微分方程根解odedc连续离散常微分方程optim非线性优化quapro线性二次型规划semidef半正定规划26多项式计算coeff多项式系数coffg多项式矩阵逆degree多项式阶数denom分母项derivat有理矩阵求导determ矩阵行列式值factors因式分解hermit hermit型horner多项式计算invr有理矩阵逆lcm最小公倍数ldiv多项式矩阵长除numer分子项pdiv多项式矩阵除pol2des将多项式矩阵变换为表达式pol2str将多项式变换为字符串polfact最小因式residu余量roots多项式的根simp多项式的简化systmat系统矩阵27信号处理%asn椭圆积分%k jacobi完全椭圆积分%sn jacobi椭圆函数analpf模拟量低通滤波器buttmag butterworth滤波器响应cepstrum倒谱计算cheb1mag chebyshev一型响应cheb2mag chebyshev二型响应chepol chebyshev多项式convol卷积corr相关,协方差cspect谱估计dft离散傅立叶变换fft快速傅立叶变换filter滤波器建模fsfirlin fir滤波器设计hank协方差矩阵到hankel矩阵变换hilb hilbert变换iir iir数字滤波器intdec信号采样率更改kalm kalman滤波器更新mese最大熵谱估计mfft多维快速傅立叶变换mrfit频率响应拟合phc maikov过程srkf kalman滤波器平方根sskf稳态kalman滤波器system观测更新wfir线性相位fir滤波器weiener weiener滤波器window对称窗函数yulewalk最小二乘滤波器zpbutt buthererworth模拟滤波器zpchl chebyshev模拟滤波器28音频信号analyze音频信号频域图auread读*.au音频文件auwrite写*.au音频文件lin2mu将线性信号转换为miu率码信号loadwave取*.wav音频文件mapsound音频信号图示mu2lin将mu码率信号转换为线性信号playsnd音频信号播放savewave存*.wav音频文件wavread读*.wav音频文件wavwrite写*.wav音频文件29语言与数据转换工具ascii字符串的ascii码excel2sci读ascii格式的excel文件fun2string将scilab函数生成ascii码mfile2sci将matlab的m格式文件转换为sci格式文件mtlb_load取matlab第四版本文件中变量matlb_save按matlab第四版本文件格式存变量pol2tex将多项式转换为tex格式sci2for将scilab函数转换为fortran格式文件texprint按tex格式输出scilab对象translatepaths将子目录下的所有matlab文件转换为sci文件格式。
scilab-使用教程
与MATLAB的互操作性
01
SCILAB可以与MATLAB进行互 操作,允许用户在SCILAB中调 用MATLAB函数或编辑器中的 脚本。
02
互操作性可以通过MATLAB Engine API for Scilab实现, 该API提供了与MATLAB的接 口,以便在SCILAB中执行 MATLAB代码。
图像处理
SCILAB提供了图像处理和分析的功能,可以用 于图像处理和计算机视觉等领域。
ABCD
工程仿真
SCILAB可以用于工程设计和仿真的数值计算和 分析,如流体动力学、结构力学等。
系统控制
SCILAB可以用于控制系统设计和分析,如控制 系统仿真和优化等。
02 SCILAB基础操作
启动与退出SCILAB
易用性
SCILAB的用户界面友好,易于学 习和使用,支持多种编程语言接 口,方便用户进行编程和开发。
开放性
SCILAB是开源软件,用户可以自 由获取和使用源代码,并根据自 己的需求进行定制和开发。
SCILAB的应用领域
科学计算
SCILAB广阵元素
使用单引号或双引号将元素索引括起来,例如 `A(1,1)`或`A"[1,1]"`。
矩阵运算
支持常见的矩阵运算,如加法、减法、乘法 等。
03 SCILAB编程基础
控制流语句
顺序执行
SCILAB中的代码按照从上到下的顺序 执行,无需使用特定的控制流语句。
循环语句
使用`for`循环重复执行特定代码块, 例如`for i=1:10, statements, endfor`。
初值条件
求解常微分方程时需要指定初值条件,可以使用"="指定初值。例如, y(t0)=y0将指定在t0时刻的初值。
Scilab程序
ScilabSCILAB 是由法国国家信息、自动化研究院(INRIA)的科学家们开发的“开放源码”软件。
SCILAB 一词来源于英文“Scientific Laboratory"(科学实验室)词头的合并。
概念:与MATLAB类似,SCILAB也是一种科学工程计算软件,[2]其数据类型丰富,可以很方便地实现各种矩阵运算与图形显示,能应用于科学计算、数学建模、信号处理、决策优化、线性/非线性控制等各个方面。
它还提供可以满足不同工程与科学需要的工具箱,例如SCICOS,信号处理工具箱,图与网络工具箱等。
可以说,就基本的功能如科学计算、矩阵处理及图形显示而言,MATLAB能完成的工作SCILAB都可以实现。
由于SCILAB的语法与MATLAB非常接近,熟悉MATLAB编程的人很快就会掌握SCILAB的使用。
有意思的是,SCILAB提供的语言转换函数可以自动将用MATLAB 语言编写的程序翻译为SCILAB语言。
目前,SCILAB除了WINDOWS与NT版本外,还有多种UNIX或LINUX下的版本,如SGI MIPS Irix, PC Linux, Sun Sparc stations(Sun Solaris) 等。
作为开放源码的软件,SCILAB的源代码、用户手册及二进制的可执行文件都是免费的,公布于INRIA的网站上(中法实验室已建立其镜像网站),可以直接下载,在我们的网站也可以下载。
用户不仅可以在SCILAB的许可证条件下自由使用该软件,还可以根据自己需要修改源代码,使之更加符合自身需要。
对这一优秀的自由软件,国外已有很多人加以关注、讨论和赞赏。
在国内,2001年1月SCILAB 首次放在旨在推广开放源码软件的“共创联盟网站”上,短短不到一个月内,下载次数已达300多次。
著名的Springer出版社于1999年6月出版了一本关于SCILAB的书:《Engineering and Scientific Computing With Scilab》,介绍了SCILAB的编程语言、函数、各种工具箱及其在控制、优化、图形、信号处理中的应用实例。
Scilab程序设计教程_v0.02
生成没有任何元素的空矩阵
2.4.
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矩阵乘方
->
->
->
->
->
->
->
->
->
.sav文件为Scilab变量数据文件
2.
Scilab具有丰富的数据类型,如整型、字符型、结构体等,以上的数据类型都以矩阵的形式存在,所以矩阵是Scilab最基本的数据对象。本章重点介绍Scilab中各种数据的表示方法和基本运算。
2.1.
矩阵是Scilab最基本的数据对象,Scilab的大部分运算是在矩阵运算的意义下执行的。Scilab下的变量不需要预先定义,其直接根据第一次使用时的数据类型自动确定类型。
acosh 反双曲余弦
acot 反余切
acoth 反双曲余切
acsc 反余割
acsch 反双曲余割
asin 反正弦
asinh 反双曲正弦
atan 反正切
atanh 反双曲正切
cos 余弦
cosh 双曲余弦
cotg 余切
coth 双曲余切
sin 正弦
sinh 双曲正弦
tan 正切
tanh 双曲正切
exp 指数
-->s = 1:0.4:4
s =
scilab模块开发
2010—2011学年第二学期《通信原理课程设计》实验报告专业班级 2008211116班姓名廖昊夫学号 08210462开课系室信通院实验中心报告日期 2011年7月23日目录一、生成模块函数的编写 (3)1、接口函数 (4)基本框架: (4)数据结构 (5)模块参数的修改(set) (6)模块参数的初始状态定义(define) (7)2、计算函数 (8)基本框架 (8)数据结构 (9)输出更新(flag=1) (10)状态更新(flag=2) (10)二、模块的加载 (10)1、scilab 4.1.2中加载模块的方法 (11)2、scilab 5.3.x中加载模块的方法 (12)加载步骤 (12)5.3.x中运行C语言编写的计算函数的方法 (14)参考文献 (14)Scilab模块的开发一、生成模块函数的编写在scilab中要想生成一个模块我们需要为其编写相应的函数: 模块的接口函数和计算函数。
其中接口函数决定模块的几何外观、颜色、输出端数目、输入的数目、初始参数、模块标记等方面的信息,同时还完成模块中用户对话窗口的信息处理。
而计算函数则决定了输入、输出之间的逻辑关系,完成了所需要的计算功能。
为了读者能够更好的理解本文,下面介绍一些基本的Scilab语法:select语句:select expr,case expr1 then instructions1,case expr2 then instructions2,...case exprn then instructionsn,[else instructions],end该语句用于判断expr的不同情况并执行相应的命令(instructions)向量或矩阵:用[]表示,矩阵的同一行之间不用元素用’,’或空格隔开,不同行之间用’;’隔开。
如[1,1]运行的结果为:1. 1.[1;1]运行的结果为:1.1.list: 在scilab中我们可以用函数list、tlist和mlist来创建list 变量,这样我们就可以通过索引这个list变量来调用不同类型的对象集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Scilab 5.3.3下模块的移植、在线帮助的编写以及工具箱的建立——By 廖昊夫孙琪一、引言Scilab作为一个仍在不断开发更新的开源计算软件,其每一个版本较之前都有很大变化,这种变化使得之前在旧版本上开发的一些模块,不能很好地在新版本(Scilab 5.3.3)上运行,基于此问题本文将展开深入探讨,并给出工具箱的建立办法。
二、模块的移植Xcos 界面Xcos是新版本Scilab的仿真器,其在界面上较之前有很大的改动。
新版本界面如下:图1 Xcos组件盘图2 Xcos主窗口如上图所示,图1是Xcos的组件盘,组件盘中存放的是用户或者系统已经添加并分类好的模块,通过它用户可以很方便的向Xcos的主窗口添加模块。
图2是Xcos的主窗口,是用户搭建自己仿真模型的区域。
Xcos图片文件在Xcos中图片文件分为三类:.gif或.png文件,.svg文件以及.h5文件。
它们均用来显示模块的外观,但用在不同的场所。
◆.gif或.png文件是标准的图片文件,是位图,其主要用于在组件盘中显示模块的外观,如图1中红方框内的模块图片实际上就由调用对应的.png文件所实现的。
Scilab自带的该类文件存放于SCI\modules\xcos\images\palettes◆.svg文件由XML语言编写,属于矢量图。
当该类文件对应的图片被放大时,图片的清晰度不会发生改变。
因此该图片被用于显示Xcos主窗口中的模块外观。
如图2中红方框内的模块外观就是由.svg文件产生的。
Scilab自带的该类文件存放于SCI\modules\xcos\images\blocks◆.h5文件是Scilab通过模块的接口函数自动生成的文件,用于向Xcos中添加模块时使用,Xcos能够通过.h5文件生成对应的.svg图片。
Scilab自带的该类文件存放于SCI\modules\scicos_blocks\blocks模块的加载在5.3.x中打开SciNotes,图3 SciNotes打开示意图,如红方框所示进入SciNotes后,输入如下形式的代码:loadXcosLibs(); //读取Xcos模块库pal =xcosPal("My palette"); //设置你要在xcos中存放你模块的文//件名exec('接口函数路径',-1); //运行接口函数和计算函数,相当于注册exec('计算函数路径',-1); //以便Scilab能够识别这些外来函数//另外当计算函数用非Scilab语言编写时,这时的注册方式不//能用exec()函数来注册,而应该用ilib_for_link函数注//册PathName ='你需要存放的.h5文件路径'; //在Scilab中模块的加载需要先生成一//个.h5文件来配套使用scs_m =接口函数名("define"); //以job=’define’运行接口函数,由//返回值scs_m获取模块的数据结构及//初始化参数、外观等信息export_to_hdf5(PathName, "scs_m"); //生成.h5文件,需要说明的是这里的//PathName及scs_m均是自己设定的//变量名pal =xcosPalAddBlock(pal,PathName,'.png或.gif文件路径','.svg文件路径'); //由.h5,.png和.svg文件及设置好//的pal名,向xcos中加载模块。
其//中.png文件和.svg文件路径为可//选参数xcosPalAdd(pal); //在xcos中添加存放模块的文件夹由上面的代码我们可以看出,在5.3.x中生成模块需要首先生成一个包含模块信息各方面的.h5文件,然后再调用加载模块函数xcosPalAddBlock,以在xcos中生成图形化界面。
当编写好加载代码后点击运行,然后打开xcos我们就能看到模块已经成功加载完成了。
点击运行按钮,执行代码:图4 执行按钮示意图,如红方框所示模块加载成功:代码中设定的文件名图5 模块加载完成示意图图5中模块图片与系统自带原生模块图片有出入,这是因为在编写模块加载代码时,我们并没有为模块指定.png 文件以及.svg文件,即xcosPalAddBlock()函数的第三、四个参数为空。
此时系统只能由.h5文件自动生成模块图片,图5的模块图片均由系统自动生成。
计算函数接口对于由非scilab语言编写的计算函数,我们并不能直接将其运行,因此需要使用scilab里面专门提供的接口函数(这里所说的接口函数不是模块里的接口函数,请勿混淆)最主要的就是ilib_for_link这个函数,它的各参数的意义为:ilib_for_link([’标签名’], ’.c文件’, [], ’c’)◆这里的标签名对应于模块接口函数中model.sim=list('计算函数名',函数类型用数字(1~5表示))的计算函数名。
◆在最新版本的Scilab中第三个参数应为计算函数源文件(旧版本位.obj文件)◆第三个参数一般置空,第四个参数则是你计算函数所用的语言类型,C语言用’c’表示,fortran语言用’f’表示。
◆在执行完ilib_for_link这个函数后应该紧接着写一句exec loader.sce来完成计算函数的运行值得注意的是,在使用ilib_for_link函数时,计算函数源文件应该放置在scilab当前默认的文件夹中,其路径可以在主窗口中直接输入pwd查看。
若想改变scilab默认路径可采用cd(‘修改后的路径名’)来修改。
最终的非Scilab语言计算函数的注册方式如下:ilib_for_link(['标签名'],'.c文件',[],'c');exec loader.sce三、在线帮助的编写在线帮助,即Scilab的help。
当我们在Scilab中开发好自己编写好的函数或者模块后,为了方便别人使用,我们需要为其添加在线帮助,以告诉使用者我们编写的函数或模块的使用方法。
在线帮助界面图6 Scilab在线帮助界面如图6所示,在线帮助分为两个部分,左侧为在线帮助的书签,用于将在线帮助分类。
右侧为在线帮助的主窗口,该窗口界面由XML语言编写。
在线帮助资源Scilab在线帮助所调用的资源分为两类:.xml文件和.jar文件。
◆.xml文件由XML语言编写,是在线帮助的核心部分,Scilab通过该类型的文件来显示在线帮助的内容◆.jar文件由.xml文件生成,Scilab能够通过相应的函数将.xml文件以及其他生成在线帮助所需的所有资源封装成.jar文件,最终Scilab通过调用.jar文件生成在线帮助。
因此,生成在线帮助的逻辑框图如下:.XML文件的编写在Scilab中添加帮助文档,最基本的一步是在遵循xml语法的基础上按照Scilab对其的格式要求编写xml文档。
先介绍一下xml的语法,然后以DES模块的帮助文档DES.xml为例,介绍帮助文档的书写格式。
1.xml语法简介◆各元素是以<aaa>开始,以</aaa>结束的,其中aaa是该段的标识,两个标志之间的内容即属于此部分。
◆xml中,注释是<!--asf-->格式◆在Scilab的帮助文档中,有以下几个常用标示符:<refsection> </refsection> 用于区分说明文档中各个部分<pubdate> </pubdate> 标识文档日期<title> </title> 标识该部分的题目<imageobject> </imageobject> 放置图片文件<para> </para> 放置带显示的文字<itemizedlist> </itemizedlist> 以列表条目形式显示内容<listitem> </listitem> 每条列表项内容(通常itemizedlist、listitem、para嵌套使用)<term> </term> 用于标识该条目的标题<link> </link> 用于链接同文件夹中的文件2.示例以DES.xml文档为例解释xml文档的书写格式:<?xml version="1.0" encoding="UTF-8"?> <!—xml版本号和编码方式,这个是必须有的--><refentry xmlns="/ns/docbook"xmlns:xlink="/1999/xlink"xmlns:svg="/2000/svg"xmlns:mml="/1998/Math/MathML"xmlns:db="/ns/docbook" <!—上面几行是命名空间,最好不动--> version="5.0-subset Scilab" xml:lang="en" <!--此处需要注意选择语言种类en_US,也可以选择其他语言,具体参见scilab帮助。
这是Scilab要求必须有的部分--> xml:id="DES"> <!--此处的id需要与同文件夹(即同一个Palette)中文件不同的id号--><info><pubdate>22-08-2011</pubdate> <!--文档日期--></info><refnamediv><refname>DES module</refname> <!--模块名称--><refpurpose>DES (Data EncryptionStandard) module, used to encrypt messages</refpurpose> <!--模块简述--></refnamediv><refsection> <!—每个部分使用refsection标记--><title>Block Screenshot</title> <!—title是关键字,可以标识此为标题类型--> <para> <!—para中的内容是待显示的内容--><inlinemediaobject> <!—显示图片的固定格式--><imageobject><imagedata fileref="../png/DES.png"align="right" valign="middle"/> <!--需要使用png或者svg图片--> </imageobject></inlinemediaobject> <!—显示图片的固定格式--></para></refsection><refsection><title>Palette</title><para>DES Palette</para></refsection><refsection><title>Description</title><itemizedlist><listitem> <!—如果有很多内容需要逐条列出,使用关键字lititem--><para>Enter the size of bit of input binarynumbers and the content of the key.This modulewill encrypt messages using the key.</para></listitem></itemizedlist></refsection><refsection><title>Dialog box</title><para><inlinemediaobject><imageobject><imagedata fileref="../png/Dlg_DES.png" align="center" valign="middle"/></imageobject></inlinemediaobject></para><itemizedlist><listitem><para>Input size. The size of each group of binary numbers. The recommended value is 8.</para></listitem><listitem><para>key. The key is a 7-bit vector whose every bit is a number ranging 0 ~ 255.</para></listitem></itemizedlist></refsection><refsection><title>Interfacing function</title><itemizedlist><listitem><para>DES on 5.3.x\model\DES\des_int.sci</para></listitem></itemizedlist></refsection><refsection><title>Computing function</title><itemizedlist><listitem><para>DES on 5.3.x\model\DES\des_com.sci</para></listitem></itemizedlist></refsection><refsection><title>Author</title><itemizedlist><listitem><para>Liao Haofu, Cen Jianhu, Sun Qi, Sun Jianfeng</para></listitem></itemizedlist></refsection></refentry>3.关于链接文件在需要加入超链接的地方输入:<link linkend="example_1_function_7">example_1_function_7</link>其中,example_1_function_7是一个xml文件名,且此文件与当前编辑的xml文件在同一文件夹下。