Scilab体验


 ██████╗ ███████╗██████╗ ██╗   ██╗███████╗
██╔═══██╗██╔════╝██╔══██╗╚██╗ ██╔╝██╔════╝
██║   ██║███████╗██████╔╝ ╚████╔╝ █████╗  
██║▄▄ ██║╚════██║██╔══██╗  ╚██╔╝  ██╔══╝  
╚██████╔╝███████║██████╔╝   ██║   ███████╗
 ╚══▀▀═╝ ╚══════╝╚═════╝    ╚═╝   ╚══════╝
                                          

保命声明:笔者代码能力有限,若行文中有错漏之处欢迎大家指出。

Scilab简介

[https://www.scilab.org]
[https://www.cnblogs.com/begtostudy/archive/2010/08/31/1813555.html]
达索系统收购SCILAB,近乎完美的MATLAB的开源替代
Scilab is a free and open source software for engineers & scientists, with a long history (first release in 1994) and a growing community (100 000 downloads every months worldwide).
包括:

  • Scilab Computation Engine
  • Xcos Model-based Design(类似MATLAB的Simulink)
  • ATOMS Toolboxes Management(工具箱管理器)

与MATLAB类似,SCILAB也是一种科学工程计算软件,其数据类型丰富,可以很方便地实现各种矩阵运算与图形显示,能应用于科学计算、数学建模、信号处理、决策优化、线性/非线性控制等各个方面。它还提供可以满足不同工程与科学需要的工具箱,例如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团队继承了法国INRIA研究所在计算机科学和自动化方面的专业知识,现在是达索系统的一部分。该团队由高等教育学校或大学的工程师和科学博士组成,他们毕业于数学、自动化、电信、物理或计算机科学。他们对Scilab软件及其环境有广泛的了解,并直接参与Scilab开发。

自2022年年中以来,Scilab团队成为达索系统的一部分。达索系统是3DEXPERIENCE公司,是人类进步的催化剂,为企业和人们提供协同虚拟环境,以想象可持续创新。达索系统的客户通过其3DEXPERIENCE平台和应用程序创造现实世界的“虚拟孪生体验”,突破了创新、学习和生产的界限。达索系统的20,000名员工正在为140多个国家的所有行业的300,000多名不同规模的客户带来价值。

Scilab的团队涵盖不同应用领域,深入了解数值计算的杰出原理。涉及到使用求解器和算法来解决复杂的物理问题。Scilab的核心基于线性代数库,纯粹的编程技能是不够的。这些能力正是艾伦·图灵(Alan Turing)等历代天才的动力。

Scilab覆盖数学、优化、统计学、信号和图像处理、控制系统、软件开发等应用领域。开发和维护Scilab需要广泛的编程技能,从低水平的硬件理解到高水平的接口开发。这种专业知识贯穿于不同的编程语言:C/C++、JAVA、Fortran,Scilab代码的质量证明了Scilab在编程方面的专业知识。

达索系统负责CATIA战略的专家BELLONCLE Guillaume在他的领英账号上分享说,Scilab将为3DEXPERIENCE平台上的CATIA和SIMULIA仿真解决方案提供额外的数据前/后处理功能。


用Scilab绘制折线图

Matlab 绘图实例
Scilab 的画图函数

绘制正弦函数图片

SCILAB

xdata = linspace(1,10,50);
ydata = sin(xdata);
plot(xdata, ydata);
//设置标题
xtitle("This is a Plot", "x axis", "y axis");

帮助:


对比:MATLAB

x=-4:0.1:4;
y1=sin(x);
y2=sin(2*x);
y3=2*sin(x);
%设置标题
plot(x,y1,x,y2,x,y3);
title("This is a Plot");
xlabel('x');
ylabel('y');

绘制折线图

clf()
x = [5 6 7 8]
y = [1   1   1   1   8
     2   3   4   5   9
     3   4   5   6  10
     4   5   6   7  12];

// Only one matching possibility case: how to make 4 identical plots in 4 manners...
// x is 1x4 (vector) and y is 4x5 (non square matrix)
subplot(221); plot(x', y , "o-");    // OK as is
subplot(222); plot(x , y , "o-");    // x is transposed
subplot(223); plot(x', y', "o-");    // y is transposed
subplot(224); plot(x , y', "o-");    // x and y are transposed

绘制graypolar图片

clf()
x = [5 6 7 8]
y = [1   1   1   1   8
     2   3   4   5   9
     3   4   5   6  10
     4   5   6   7  12];

// Only one matching possibility case: how to make 4 identical plots in 4 manners...
// x is 1x4 (vector) and y is 4x5 (non square matrix)
subplot(221); plot(x', y , "o-");    // OK as is
subplot(222); plot(x , y , "o-");    // x is transposed
subplot(223); plot(x', y', "o-");    // y is transposed
subplot(224); plot(x , y', "o-");    // x and y are transposedrho=1:0.1:4;theta=(0:0.02:1)*2*%pi;
z=30+round(theta'*(1+rho.^2));
f=gcf();
f.color_map= hotcolormap(128);
clf();graypolarplot(theta,rho,z)


posted @ 2023-02-13 22:05  qsBye  阅读(138)  评论(0编辑  收藏  举报