Scilab 是由法國國立計算機及自動化研究院（l'Institut national de recherche en informatique et en automatique，簡稱 INRIA）和法國國立橋梁學院（l'École nationale des ponts et chaussées，簡稱 ENPC）開發的開放原始碼的科學計算自由軟體。Scilab 一詞來源於英文「Scientific Laboratory」（科學實驗室）詞頭的合併。

目前全世界使用 Scilab 的人數估計有 1,000,000 人。Scilab 也是以矩陣作為主要的數據類型，同時擁有豐富的繪圖功能。Scilab 能處理包括訊號處理、統計分析、圖像增強、數值最佳化、動態系統仿真等方面的問題。網路上也有不少人為它寫了許多延伸函式庫、豐富了它的功能。

為推廣普及 Scilab，自 2002 年起，INRIA 跟中國科學院自動化研究所每年組織一次 Scilab 競賽。



歷史

Scilab 始源於 80 年代在 INRIA 開發的計算機輔助控制系統設計軟體 Blaise，其最初的開發者為弗朗斯瓦・底列貝克（François Delebecque）和舍齊・史迪爾（Serge Steer）。Blaise 的誕生受到了克里夫・莫勒爾（Steve Moler）當時用 Fortran 編寫的 MATLAB 軟體的啓發。

1984 年，Blaise 更名為 Basile，由 Simulog（INRIA 的第一個研發小組）負責分發。

90 年代初，Simulog 停止分發 Basile。Basile 更名為 Scilab，由來自 ENPC 的 Jean-Philippe Chancelier 和來自 INRIA 的 François Delebecque，Claude Gomez，Maurice Goursat，Ramine Nikoukhah，Serge Steer 共 6 人組成的 Scilab 小組繼續進行開發工作。後來 INRIA 決定把 Scilab 作為開源軟體分發。1994 年 1 月 2 日，Scilab 的第一個釋放版本，Scilab 1.1 上傳到一個匿名 ftp 站點。直到 2002 年底，Scilab 都是由 6 人小組與一些外部開發者一道共同開發並發佈的。從 2003 年開始，由新成立的 Scilab 協會負責 Scilab 軟體的後續開發以及相關技術支援。

Scilab 協會於 2005 年啟動了基於 Java 的 Scilab 5.x 的開發，而之前的部分 Scilab 開發小組成員（包括 ENPC 以及部分 INRIA 成員）則在之前的 Scilab 4.x 的基礎上另外發布了基於 GTK + 的 Scilab 版本：ScicosLab（該版本整合了 Scicos）。

Scilab 協會在 2008 年加入 Digiteo 基金會，自此 Scilab 協會開始在 Digiteo 基金會的引領下對 Scilab 進行開發，這種情況一直持續到 2012 年 6 月。另外也是在 2008 年，Scilab 開始基於 CeCILL 許可協定發行，CeCILL 是一個與 GPL 相容的開源許可協定。

為了保證 Scilab 的長遠發展，在 INRIA 的支援下，Scilab 事業公司於 2010 年 6 月成立。自 2012 年 7 月開始，Scilab 事業公司將完全負責對 Scilab 後續版本的開發與發布，此外公司也提供關於 Scilab 的專業服務與支援。2017 年，Scilab 事業公司被 ESI 集團併購。



主要特點


* 大約 1700 個用於科學和工程計算的數學函數

* 2 維和 3 維可視化數據圖形

* 約束 / 無約束、連續 / 離散問題的最佳化

* 數據分析與建模

* 控制系統的分析與設計

* 訊號處理

* 用於自訂開發擴展功能的 API



語法

Scilab 的語法很大程度上基於 MATLAB 語言，執行 Scilab 代碼的最簡單方式是在圖形窗口中提示符 `-->` 後輸入命令。此時，Scilab 以互動式的數學 shell 方式工作。

Scilab 的 Hello World! 為：

顯示 3 維曲面的函數為：



工具箱

Scilab 有許多為不同目的設計的工具箱，例如：


* Scilab 圖像處理工具箱（SIP）及其變種（例如 SIVP）

* Scilab 小波工具箱

* Scilab Java 和.NET 模組

* Scilab 遠端存取模組

更多工具包可在 ATOMS Portal 或 Scilab forge 上找到。



GUI 介面

Scilab 的 GUI 介面與 MATLAB 很類似，其主要部分是一個用於輸入命令的互動式控制臺；在 Scilab 控制臺中按 Tab 鍵，Scilab 會依據游標之前的文字自動補齊變數、函式或檔案的名稱；此外，Scilab 也會儲存控制臺中輸入的命令，通過按「"↑","↓"」鍵就能前後檢索已鍵入的命令。



Scilab 語言

Scilab 語言也是一種互動性的數學手稿語言，語法與 MATLAB 語言相近，也以矩陣作為數據的基本組織形式。Scilab 還有一個可以把 MATLAB 源程式轉換為 Scilab 源程式的代碼翻譯器。

數據類型

1. 常數（constant）類型（數據前面加 % 表示該數據是 Scilab 已經定義好的）

```
-->a = [1.5-2.5*%i, %pi; %inf, -1.5e2] 
 a =
    1.5 - 2.5i    3.1415927  
    Inf         - 150.
```

2. 字串（string）類型

```
-->b = ["123", "456"; "Let''s use", "SciLab!"] 
 b =
!123        456      !
!                    !
!Let's use  SciLab!  !
```

3. 有理式（rational）類型

```
-->x = poly（0, "x"）; //定义x为多项式
-->c = [x/（x^2+1）, 2; -1/x, x^3+1]
 c =
      x       2       
    -----     -       
         2            
    1 + x     1       
                      
                   3  
  - 1         1 + x   
    -         -----   
    x           1 
```

4. 表（list）類型（類似於 C 語言中的「結構」數據類型，即可以包含不同類型的元素）

```
-->d = list（[1,2;3,4], "abc", poly([1,2,3],"x","c"）)
 d =
 
       d (1) 
    1.    2.  
    3.    4.  
 
       d (2) 
 abc   
 
       d (3) 
               2  
    1 + 2x + 3x  
```

編程

1.if 選擇語句

2.select 選擇語句

3.for 循環語句

4.while 循環語句


* 另外，可以在 while 或 for 循環語句中使用 break 關鍵字跳出循環

5. 自訂函數



工具箱

同 MATLAB 軟體中的 Simulink 工具箱類似，Scilab 也擁有一個用於混合動態系統建模 / 仿真的工具箱：Xcos（它代替了 Scilab 5.2 之前的 Scicos）。使用者可以自己編寫擴展的工具模組並添加於 Scilab 中，或者使用別人已編寫好的擴展模組。Scilab 提供了一個模組管理器（ATOMS）統一對擴展模組進行搜尋、安裝和更新。在 Scilab 官方的 wiki 頁面上對 Scilab 工具箱和 MATLAB 工具箱之間的相關性進行了詳細對比。

Scilab 的其它一些工具箱：圖像處理（SIP、SIVP）、小波變換（Scilab Wavelet Toolbox）、序列埠通信（Serial Communication Toolbox）、圖形和網路計算（Metanet）、GPU 計算（sciGPGPU）、航天動力學分析（CelestLab）等等。

Scilab 的許多工具箱可以在網站 ATOMS Portal（頁面存檔備份，存於網際網路檔案館）或者 Scilab forge（頁面存檔備份，存於網際網路檔案館）上找到。



參考文獻

參照

網頁



參見


* MATLAB

* GNU Octave

* FreeMat



外部連結


* Scilab 官網（頁面存檔備份，存於網際網路檔案館）（英文）

* Scilab Enterprises（頁面存檔備份，存於網際網路檔案館）（英文）

* Scilab Google Group（英文）

* 嵌入式系統 Scilab：Scilab-EMB（英文）

* Scilab 正體中文計畫（繁體中文）

* 中文 Scilab 教育論壇（繁體中文）

* 中文 Scilab 檔案（頁面存檔備份，存於網際網路檔案館）（繁體中文）

* Scilab 簡體中文首頁（頁面存檔備份，存於網際網路檔案館）（簡體中文）

* Scilab 中文論壇（頁面存檔備份，存於網際網路檔案館）（簡體中文）

* 2008 年 Scilab 競賽首頁（頁面存檔備份，存於網際網路檔案館）（簡體中文）