สำหรับความหมายอื่น ดูที่ Octave (disambiguation)

**GNU Octave** เป็น ภาษาการเขียนโปรแกรมทางวิทยาศาสตร์ สำหรับ การคำนวณทางวิทยาศาสตร์ และ การคำนวณเชิงตัวเลข อ็อกเทฟช่วยในการแก้ปัญหาเชิงเส้นและไม่เชิงเส้นในเชิงตัวเลข และสำหรับดำเนินการทดลองเชิงตัวเลขอื่นๆ โดยใช้ภาษาที่ส่วนใหญ่เข้ากันได้กับ MATLAB นอกจากนี้ยังอาจใช้เป็นภาษา ที่เน้นแบบแบตช์ ด้วย ในฐานะที่เป็นส่วนหนึ่งของ โครงการ GNU ซอฟต์แวร์นี้เป็น ซอฟต์แวร์เสรี ภายใต้เงื่อนไขของ GNU General Public License

ประวัติ
-------

โครงการนี้เกิดขึ้นประมาณปี พ.ศ. 2531  ในตอนแรกตั้งใจที่จะใช้ร่วมกับหลักสูตรการออกแบบเครื่องปฏิกรณ์เคมี การพัฒนาเต็มรูปแบบเริ่มต้นโดย John W. Eaton ในปี 1992 อัลฟ่ารุ่นแรกเริ่มตั้งแต่วันที่ 4 มกราคม พ.ศ. 2536 และในวันที่ 17 กุมภาพันธ์ พ.ศ. 2537 เวอร์ชัน 1.0 ได้รับการเผยแพร่ เวอร์ชัน 8.4.0 เปิดตัวเมื่อวันที่ 5 พฤศจิกายน 2023 

โปรแกรมนี้ตั้งชื่อตาม Octave Levenspiel อดีตศาสตราจารย์ของผู้เขียนหลัก Levenspiel เป็นที่รู้จักจากความสามารถของเขาในการ คำนวณแบบ back-of-envelope อย่างรวดเร็ว

ประวัติการพัฒนา
---------------

| Time | Action |
| --- | --- |
| 1988/1989 | 1st discussions (Book and Software) |
| February 1992 | Start of Development |
| January 1993 | News in Web (Version 0.60) |
| February 1994 | 1st Publication (Version 1.0.0 to 1.1.1) |
| December 1996 | 2nd Publication (Version 2.0.x) with Windows Port (Cygwin) |
| March 1998 | Version 2.1 |
| November 2004 | Version 2.9 (DEV Version of 3.0) |
| December 2007 | Publication of Version 3.0 (Milestone) |
| June 2009 | Publication of Version 3.2 (Milestone) |
| 8 February 2011 | Version 3.4.0 (Milestone) |
| 22 February 2012 | Publication of Octave 3.6.1 (Milestone) |
| 31 December 2013 | Publication of Octave 3.8.0 (experimental GUI) |
| 29 May 2015 | Version 4.0.0 (stable GUI and new Syntax for OOP) |
| 14 November 2016 | Version 4.2.0 (gnuplot 4.4+) |
| 30 April 2018 | Version 4.4.0 (new Goal for GUI QT Toolkit, the FLTK toolkit is not deprecated and there is no schedule for its removal - while no longer prioritized) |
| 1 March 2019 | Publication of Octave 5.1.0 (QT5 preferred, Qt 4.8 minimum), hiDpi support |
| 31 January 2020 | Publication of Octave 5.2.0 (QT5 preferred) |
| 26 November 2020 | Publication of Octave 6.1.0 (QT5 preferred, Qt 4.x deprecated for remove in 7) |
| 20 February 2021 | Publication of Octave 6.2.0 (QT5 preferred), Bugfix, improved matlab syntax support |
| 6 April 2022 | Publication of Octave 7.1.0 (QT5 preferred), improved graphics backend and matlab compatibility |
| 28 July 2022 | Publication of Octave 7.2.0 (QT5 preferred), bug fixing release |
| 2 Nov 2022 | Publication of Octave 7.3.0 (QT5 preferred), bug fixing release |
| 7 March 2023 | Publication of Octave 8.1.0, improved graphics backend and matlab compatibility |
| 13 April 2023 | Publication of Octave 8.2.0, bug fixing release |
| 8 August 2023 | Publication of Octave 8.3.0, bug fixing release |
| 5 November 2023 | Publication of Octave 8.4.0, bug fixing release |

การพัฒนา
--------

นอกเหนือจากการใช้บนเดสก์ท็อปสำหรับการคำนวณทางวิทยาศาสตร์ส่วนบุคคลแล้ว Octave ยังใช้ในด้านวิชาการและอุตสาหกรรมอีกด้วย ตัวอย่างเช่น Octave ถูกใช้บนคอมพิวเตอร์คู่ขนาน ขนาดใหญ่ที่ Pittsburgh Supercomputing Center เพื่อค้นหาช่องโหว่ที่เกี่ยวข้องกับการเดาหมายเลขประกันสังคม 

การเร่งความเร็วด้วย OpenCL หรือ CUDA ก็สามารถทำได้ด้วยการใช้ GPU

รายละเอียดทางเทคนิค
-------------------

* อ็อกเทฟเขียนด้วย ภาษา C++ โดยใช้ ไลบรารี่มาตรฐาน C++
* อ็อกเทฟใช้ ล่าม เพื่อรันภาษาสคริปต์อ็อกเทฟ
* อ็อกเทฟสามารถขยายได้โดยใช้โมดูลที่สามารถโหลดได้แบบไดนามิก
* ตัวแปลระดับแปดเสียงมีกลไกกราฟิกที่ใช้ OpenGL เพื่อสร้างแปลง กราฟ และแผนภูมิ และบันทึกหรือพิมพ์ หรืออีกทางหนึ่ง gnuplot สามารถใช้เพื่อจุดประสงค์เดียวกันได้
* อ็อกเทฟมี ส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) นอกเหนือจาก ส่วนต่อประสานบรรทัดคำสั่ง (CLI) แบบดั้งเดิม ดู #อินเทอร์เฟซผู้ใช้ สำหรับรายละเอียด

ภาษาอ็อกเทฟ
-----------

ภาษาอ็อกเทฟเป็นภาษาการเขียนโปรแกรมแบบตีความ มันเป็นภาษาโปรแกรมที่มีโครงสร้าง (คล้ายกับ C ) และสนับสนุนฟังก์ชันคลังมาตรฐาน C ทั่วไปจำนวนมาก และการเรียกและฟังก์ชันของระบบ UNIX บางอย่าง  อย่างไรก็ตาม มันไม่สนับสนุนการส่งผ่านอาร์กิวเมนต์โดยการอ้างอิง  แม้ว่าอาร์กิวเมนต์ของฟังก์ชันเป็น แบบคัดลอกเมื่อเขียน เพื่อหลีกเลี่ยงการทำซ้ำที่ไม่จำเป็น

โปรแกรมอ็อกเทฟประกอบด้วยรายการการเรียกใช้ฟังก์ชันหรือ สคริปต์ ไวยากรณ์เป็นแบบ เมทริกซ์ และมีฟังก์ชันต่างๆ สำหรับการดำเนินการเมทริกซ์ รองรับ โครงสร้างข้อมูล ที่หลากหลายและอนุญาต การเขียนโปรแกรมเชิงวัตถุ 

ไวยากรณ์ของมันคล้ายกับ MATLAB มากและการเขียนโปรแกรมอย่างระมัดระวังของสคริปต์จะช่วยให้สามารถทำงานได้ทั้งบน Octave และ MATLAB 

เนื่องจากอ็อกเทฟมีให้บริการภายใต้ สัญญาอนุญาตสาธารณะทั่วไปของ GNU จึงอาจมีการเปลี่ยนแปลง คัดลอก และใช้งานได้อย่างอิสระ  โปรแกรมนี้ทำงานบน Microsoft Windows และ ระบบปฏิบัติการ ที่คล้าย Unix และ Unix ส่วนใหญ่ รวมถึง Linux, Android และ macOS

คุณสมบัติเด่น
-------------

### การกรอกคำสั่งและชื่อตัวแปร

การพิมพ์อักขระ TAB บนบรรทัดคำสั่งทำให้ Octave พยายามกรอกตัวแปร ฟังก์ชัน และชื่อไฟล์ให้สมบูรณ์ (คล้ายกับ การเสร็จสิ้นแท็บ ของ Bash ) อ็อกเทฟใช้ข้อความหน้าเคอร์เซอร์เป็นส่วนเริ่มต้นของชื่อเพื่อเติมให้สมบูรณ์ 

### ประวัติคำสั่ง

เมื่อทำงานแบบโต้ตอบ Octave จะบันทึกคำสั่งที่พิมพ์ในบัฟเฟอร์ภายในเพื่อให้สามารถเรียกคืนและแก้ไขได้

### โครงสร้างข้อมูล

อ็อกเทฟมีการรองรับจำนวนจำกัดสำหรับการจัดระเบียบข้อมูลในโครงสร้าง ในตัวอย่างนี้ เราเห็นโครงสร้างx มีองค์ประกอบabc, (จำนวนเต็ม อาร์เรย์ และสตริง ตามลำดับ):

```
octave:1> x.a = 1; x.b = [1, 2; 3, 4]; x.c = "string";
octave:2> x.a
ans =  1
octave:3> x.b
ans =

   1   2
   3   4

octave:4> x.c
ans = string
octave:5> x
x =

  scalar structure containing the fields:

    a = 1
    b =

       1   2
       3   4

    c = string

```

### ตัวดำเนินการบูลีนลัดวงจร

อ็อกเทฟ `&&` และ `||` ตัวดำเนินการ เชิงตรรกะได้รับการประเมินในลักษณะ ลัดวงจร (เช่น ตัวดำเนินการที่สอดคล้องกันในภาษา C ) ตรงกันข้ามกับตัวดำเนินการแบบองค์ประกอบต่อองค์ประกอบ `&` และ `|` .

### ตัวดำเนินการเพิ่มและลด

บทความหลัก: Increment and decrement operators
อ็อกเทฟประกอบด้วย ตัวดำเนินการการเพิ่มและลดค่า แบบ C `++` และ `--` ทั้งในแบบฟอร์มคำนำหน้าและคำต่อท้าย อ็อกเทฟยังทำการ เสริมการมอบหมาย เช่น `x += 5`

### ผ่อนคลาย-ปกป้อง

Octave รองรับรูปแบบ การจัดการข้อยกเว้น ที่จำกัดซึ่งจำลองตาม `unwind_protect` ของ Lisp รูปแบบทั่วไปของบล็อก unwind\_protect มีลักษณะดังนี้:

```
unwind\_protect
  body
unwind\_protect\_cleanup
  cleanup
end\_unwind\_protect

```
ตามกฎทั่วไป GNU Octave รับรู้ว่าเป็นการยกเลิก `*block*` ที่กำหนด ไม่ว่าจะเป็นการ `end` คำหลัก (ซึ่งเข้ากันได้กับภาษา MATLAB) หรือ `end *block*` คำหลักที่เฉพาะเจาะจงมากขึ้น หรือในบางกรณี `end_ *block*` ด้วยเหตุนี้ บล็อก `unwind_protect` จึงสามารถยุติได้ด้วยคีย์เวิร์ด `end_unwind_protect` ดังตัวอย่าง หรือใช้คีย์เวิร์ดแบบพกพามากกว่า `end`

ส่วน *การล้างข้อมูล* ของบล็อกจะถูกดำเนินการเสมอ ในกรณีที่ส่วน *ของร่างกาย* เกิดข้อยกเว้น *การล้างข้อมูล* จะดำเนินการทันทีก่อนที่จะเผยแพร่ข้อยกเว้นไปนอกบล็อก `unwind_protect`

GNU Octave ยังรองรับการจัดการข้อยกเว้นรูปแบบอื่น (เข้ากันได้กับภาษา MATLAB):

```
try
 body
catch
 exception\_handling
end

```
รูปแบบหลังนี้แตกต่างจากบล็อก `unwind_protect` ในสองวิธี ขั้นแรก *Exception\_handling* จะดำเนินการเฉพาะเมื่อมีการยกข้อยกเว้นโดย *body* เท่านั้น ประการที่สอง หลังจากการดำเนินการของ *Exception\_handling* ข้อยกเว้นจะไม่แพร่กระจายออกไปนอกบล็อก (เว้นแต่จะมีการแทรกคำสั่ง `rethrow( lasterror )` ไว้อย่างชัดเจนภายในโค้ด *Exception\_handling* )

### รายการอาร์กิวเมนต์ที่มีความยาวผันแปรได้

อ็อกเทฟมีกลไกในการจัดการฟังก์ชันที่รับอาร์กิวเมนต์ที่ไม่ระบุจำนวนโดยไม่มีขีดจำกัดบนที่ชัดเจน หากต้องการระบุรายการอาร์กิวเมนต์ตั้งแต่ศูนย์ขึ้นไป ให้ใช้อาร์กิวเมนต์พิเศษ `varargin` เป็นอาร์กิวเมนต์สุดท้าย (หรือเท่านั้น) ในรายการ `varargin` เป็นอาร์เรย์เซลล์ที่มีอาร์กิวเมนต์อินพุตทั้งหมด

```
function s = plus (varargin)
 if (nargin==0)
      s = 0;
   else
      s = varargin{1} + plus (varargin{2:nargin});
   end
end

```

### รายการส่งคืนที่มีความยาวผันแปรได้

สามารถตั้งค่าฟังก์ชันให้ส่งคืนค่าจำนวนเท่าใดก็ได้โดยใช้ค่าส่งคืนพิเศษ `varargout` ตัวอย่างเช่น:

```
function varargout = multiassign (data)
 for k=1:nargout
      varargout{k} = data(:,k);
   end
end

```

### บูรณาการ C++

นอกจากนี้ยังสามารถรันโค้ด Octave ได้โดยตรงในโปรแกรม C++ ตัวอย่างเช่น นี่คือข้อมูลโค้ดสำหรับการเรียก `rand([10,1])` :

```
#include <octave/oct.h>
...
ColumnVector NumRands(2);
NumRands(0) = 10;
NumRands(1) = 1;
octave\_value\_list f\_arg, f\_ret;
f\_arg(0) = octave\_value(NumRands);
f\_ret = feval("rand", f\_arg, 1);
Matrix unis(f\_ret(0).matrix\_value());

```
รหัส C และ C++ สามารถรวมเข้ากับ GNU Octave ได้โดยการสร้างไฟล์ oct หรือใช้ ไฟล์ MEX ที่เข้ากันได้กับ MATLAB

ความเข้ากันได้ของ MATLAB
------------------------

Octave ได้รับการสร้างขึ้นโดยคำนึงถึงความเข้ากันได้ของ MATLAB และแบ่งปันคุณสมบัติมากมายกับ MATLAB:

1. เมทริกซ์เป็นชนิดข้อมูลพื้นฐาน
2. รองรับจำนวนเชิงซ้อนในตัว
3. ฟังก์ชันทางคณิตศาสตร์ในตัวอันทรงพลังและไลบรารีฟังก์ชันที่กว้างขวาง
4. ความสามารถในการขยายในรูปแบบของฟังก์ชันที่ผู้ใช้กำหนด

อ็อกเทฟถือว่าความไม่เข้ากันกับ MATLAB ว่าเป็น ข้อบกพร่อง ดังนั้นจึงถือได้ว่าเป็น ซอฟต์แวร์โคลน ซึ่งไม่ ละเมิดลิขสิทธิ์ซอฟต์แวร์ ตามคดีของศาล *Lotus v. Borland*

โดยหลักการแล้วสคริปต์ MATLAB จากที่เก็บ FileExchange ของ MathWorks นั้นเข้ากันได้กับ Octave อย่างไรก็ตาม แม้ว่าผู้ใช้มักจะจัดเตรียมและอัปโหลดภายใต้ ใบอนุญาต BSD แบบ โอเพ่นซอร์ส ที่เข้ากันได้กับ Octave และเหมาะสม แต่ ข้อกำหนดการใช้งาน FileExchange ห้ามการใช้งานใดๆ นอกเหนือจาก MATLAB ที่เป็นกรรมสิทธิ์ ของ MathWorks   

### ความเข้ากันได้ของไวยากรณ์

มี การเพิ่มไวยากรณ์ เก็บถาวร 2012-04-26 ที่ เวย์แบ็กแมชชีน ที่มีจุดประสงค์เล็กน้อยแม้ว่าจะเล็กน้อยก็ตาม:

1. บรรทัด ความคิดเห็น สามารถขึ้นต้นด้วยอักขระ # และ % อักขระ;
2. รองรับตัวดำเนินการ ที่ใช้ C ต่างๆ ++, --, +=, \*=, /=;
3. องค์ประกอบสามารถอ้างอิงได้โดยไม่ต้องสร้างตัวแปรใหม่โดยการจัดทำดัชนีแบบเรียงซ้อน เช่น [1:10](3);
4. สตริง สามารถกำหนดได้ด้วยอักขระ double-quote "เช่นเดียวกับอักขระ single-quote ';
5. เมื่อประเภทตัวแปรเป็นแบบ เดี่ยว (ตัวเลขทศนิยมที่มีความแม่นยำเดียว) อ็อกเทฟจะคำนวณ "ค่าเฉลี่ย "ในโดเมนเดียว (MATLAB ใน โดเมนคู่ ) ซึ่งจะเร็วกว่าแต่ให้ผลลัพธ์ที่แม่นยำน้อยกว่า
6. การบล็อกยังสามารถยุติได้ด้วยคีย์เวิร์ด โครงสร้างการควบคุม ที่เฉพาะเจาะจงมากขึ้น เช่น endif, endfor, end While เป็นต้น;
7. ฟังก์ชั่นสามารถกำหนดได้ภายในสคริปต์และที่พรอมต์อ็อกเทฟ
8. การมีอยู่ของลูป do-until (คล้ายกับ do- while ในภาษา C)

### ความเข้ากันได้ของฟังก์ชัน

ฟังก์ชันต่างๆ ของ MATLAB จำนวนมาก แต่ไม่ใช่ทั้งหมดมีอยู่ใน GNU Octave และบางฟังก์ชันสามารถเข้าถึงได้ผ่านแพ็คเกจใน Octave Forge ฟังก์ชันที่มีให้ใช้งานโดยเป็นส่วนหนึ่งของแพ็คเกจ Octave หลักหรือแพ็คเกจ Forge นั้นแสดงอยู่ ในระบบออนไลน์

รายการฟังก์ชันที่ไม่พร้อมใช้งานจะรวมอยู่ในฟังก์ชันอ็อกเทฟ `__unimplemented.m__` ฟังก์ชันที่ยังไม่ได้ดำเนินการยังแสดงอยู่ในแพ็คเกจ Octave Forge จำนวนมากใน Octave Wiki

เมื่อเรียกใช้ฟังก์ชันที่ยังไม่ได้ใช้งาน ข้อความแสดงข้อผิดพลาดต่อไปนี้จะปรากฏขึ้น:

```
  octave:1> guide
  warning: the 'guide' function is not yet implemented in Octave

  Please read <http://www.octave.org/missing.html> to learn how you can contribute missing functionality.
  error: 'guide' undefined near line 1 column 1

```

ส่วนติดต่อผู้ใช้
----------------

อ็อกเทฟมาพร้อมกับ ส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) อย่างเป็นทางการและ สภาพแวดล้อมการพัฒนาแบบรวม (IDE) ที่ใช้ Qt มีให้บริการตั้งแต่ Octave 3.8,  และกลายเป็นอินเทอร์เฟซเริ่มต้น (ผ่าน อินเทอร์เฟซบรรทัดคำสั่ง ) ด้วยการเปิดตัว Octave 4.0  ได้รับการตอบรับอย่างดีจากผู้สนับสนุน EDN ผู้เขียน "[Octave] ตอนนี้มี GUI ที่ใช้งานได้ดีมาก" ในการตรวจสอบ GUI รุ่นใหม่ในปี 

ส่วนหน้าแบบกราฟิกของบุคคลที่สามจำนวนมากได้รับการพัฒนา เช่น ToolboX สำหรับการศึกษาการเขียนโค้ด

แอปพลิเคชัน GUI
---------------

ด้วยรหัส Octave ผู้ใช้สามารถสร้างแอปพลิเคชัน GUI ได้ ดู การพัฒนา GUI (GNU Octave (เวอร์ชัน 7.1.0)) ด้านล่างนี้เป็นตัวอย่างบางส่วน:

ปุ่ม, การควบคุมการแก้ไข, ช่องทำเครื่องหมาย

```
# create figure and panel on it
f = figure;
# create a button (default style)
b1 = uicontrol (f, "string", "A Button", "position",[10 10 150 40]);
# create an edit control
e1 = uicontrol (f, "style", "edit", "string", "editable text", "position",[10 60 300 40]);
# create a checkbox
c1 = uicontrol (f, "style", "checkbox", "string", "a checkbox", "position",[10 120 150 40]);

```
กล่องข้อความ

```
prompt = {"Width", "Height", "Depth"};
defaults = {"1.10", "2.20", "3.30"};
rowscols = [1,10; 2,20; 3,30];
dims = inputdlg (prompt, "Enter Box Dimensions", rowscols, defaults);

```

```
prompt = {"Width", "Height", "Depth"};
defaults = {"1.10", "2.20", "3.30"};
rowscols = [1,10; 2,20; 3,30];
dims = inputdlg (prompt, "Enter Box Dimensions", rowscols, defaults);

```
กล่องรายการพร้อมกล่องข้อความ

```
my\_options = {"An item", "another", "yet another"};
[sel, ok] = listdlg ("ListString", my\_options, "SelectionMode", "Multiple");
if (ok == 1)
  msgbox ("You selected:");
  for i = 1:numel (sel)
    msgbox (sprintf ("\t%s", my\_options{sel(i)}));
  endfor
else
  msgbox ("You cancelled.");
endif

```
ปุ่มเรดิโอ

```
# create figure and panel on it
f = figure;
# create a button group
gp = uibuttongroup (f, "Position", [ 0 0.5 1 1])
# create a buttons in the group
b1 = uicontrol (gp, "style", "radiobutton", "string", "Choice 1", "Position", [ 10 150 100 50 ]);
b2 = uicontrol (gp, "style", "radiobutton", "string", "Choice 2", "Position", [ 10 50 100 30 ]);
# create a button not in the group
b3 = uicontrol (f, "style", "radiobutton","string", "Not in the group","Position", [ 10 50 100 50 ]);

```

แพ็คเกจ
-------

Octave ยังมีแพ็คเกจมากมายให้เลือก แพ็คเกจเหล่านั้นตั้งอยู่ที่ Octave-Forge Octave Forge - Package หรือ Github Octave Package ใครๆ ก็สามารถสร้างและดูแลรักษาแพ็คเกจได้

เปรียบเทียบกับซอฟต์แวร์อื่นที่คล้ายคลึงกัน
------------------------------------------

ทางเลือก ฟรี อื่น ๆ สำหรับ MATLAB ได้แก่ Scilab และ FreeMat     Octave เข้ากันได้กับ MATLAB มากกว่า Scilab    และ FreeMat ยังไม่ได้รับการอัปเดตตั้งแต่เดือนมิถุนายน 2013

ดูสิ่งนี้ด้วย
-------------

* รายการซอฟต์แวร์วิเคราะห์เชิงตัวเลข
* การเปรียบเทียบซอฟต์แวร์วิเคราะห์เชิงตัวเลข
* รายการแพ็คเกจทางสถิติ
* รายชื่อไลบรารีตัวเลข
* แมทแล็บ

หมายเหตุ
--------

1. ↑  GPL-3.0-or-later since 2007-10-12.
2. ↑  GPL-2.0-or-later from 1992-02-19 until 2007-10-11.

อ้างอิง
-------

1. ↑  Rik (10 June 2015). "contributors.in". Retrieved 14 June 2015.
2. ↑  ""Full-time development began in the Spring of 1992.
3. ↑  "GNU Octave 8.4.0 Released".
4. ↑  "Building - Octave".
5. ↑  "Basque, Belarusian, Catalan, Chinese, Dutch, English, French, German, Hungarian, Italian, Japanese, Latvian, Portuguese (Brazil), Portuguese (Portugal), Russian, Spanish, Turkish, Ukrainian".
6. ↑  "About GNU Octave". *www.gnu.org*. GNU. สืบค้นเมื่อ 1 May 2018.
7. 1 2  "GNU Octave 8.4.0 Released". *octave.org* (ภาษาอังกฤษ). 2023-11-05. สืบค้นเมื่อ 2023-11-20.
8. 1 2  Eaton, John W. "About Octave". สืบค้นเมื่อ 2009-06-28.
9. ↑  "GNU Octave Version 1". *www.gnu.org*.
10. ↑  "GNU Octave Version 2". *www.gnu.org*.
11. ↑  "News Archive". *www.gnu.org*. 31 December 2012.
12. ↑  "GNU Octave Version 3". *www.gnu.org*.
13. ↑  "GNU Octave Version 3.2". *www.gnu.org*.
14. ↑  "GNU Octave Version 3.4". *www.gnu.org*.
15. ↑  "GNU Octave Version 3.6". *www.gnu.org*.
16. ↑  "GNU Octave 3.6.4 Released". *www.gnu.org*. 21 February 2013.
17. 1 2  "GNU Octave Version 3.8". *www.gnu.org*.
18. ↑  "GNU Octave 3.8.0 Released". *www.gnu.org*. 31 December 2013.
19. ↑  "GNU Octave 3.8.1 Released". *www.gnu.org*. 4 March 2014.
20. 1 2  "GNU Octave Version 4.0". *www.gnu.org*.
21. ↑  "GNU Octave 4.0.0 Released". *www.gnu.org*. 29 May 2015.
22. ↑  "GNU Octave 4.0.1 Released". *www.gnu.org*. 23 March 2016.
23. ↑  "GNU Octave 4.0.3 Released". *www.gnu.org*. 2 July 2016.
24. ↑  "GNU Octave 4.2.0 Released". Nov 14, 2016.
25. ↑  "GNU Octave Version 4.2". *www.gnu.org*.
26. ↑  "GNU Octave 4.2.1 Released". *www.gnu.org*. 24 February 2017.
27. ↑  "GNU Octave 4.2.2 Released". *www.gnu.org*. 13 March 2018.
28. ↑  "GNU Octave Version 4.4". *www.gnu.org*.
29. ↑  "GNU Octave 4.4.0 Released". *www.gnu.org*. 30 April 2018.
30. ↑  "GNU Octave 4.4.1 Released". *www.gnu.org*. 9 August 2018.
31. ↑  "GNU Octave Version 5". *www.gnu.org*.
32. ↑  "GNU Octave 5.2.0 Released". *www.gnu.org*. 31 January 2020.
33. ↑  "GNU Octave 6.1.0 Released". *www.gnu.org*. 26 November 2020.
34. ↑  "GNU Octave 6.2.0 Released". *www.gnu.org*. 20 February 2021.
35. ↑  "GNU Octave 7.1.0 Released". *www.gnu.org*. 6 April 2022.
36. ↑  "GNU Octave 7.2.0 Released". *octave.org*. 28 July 2022.
37. ↑  "GNU Octave 7.3.0 Released". *octave.org*. 2 November 2022.
38. ↑  "GNU Octave 8.1.0 Released". *octave.org*. 7 March 2023.
39. ↑  "GNU Octave 8.2.0 Released". *octave.org*. 13 April 2023.
40. ↑  "GNU Octave 8.3.0 Released". *octave.org*. 8 August 2023.
41. ↑  "Social Security Number Vulnerability Findings Relied on Supercomputing". 8 July 2009. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 29 February 2012.
42. ↑  "Drop-in Acceleration of GNU Octave". *NVIDIA Developer Blog*. June 5, 2014.
43. ↑  "GNU Octave - Controlling subprocesses". 14 November 2008. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 7 January 2009. สืบค้นเมื่อ 2009-01-28.
44. ↑  "GNU Octave". สืบค้นเมื่อ 2009-01-28.
45. ↑  "Summary of important user-visible changes for version 3.2". สืบค้นเมื่อ 2012-01-05.
46. ↑  "FAQ: MATLAB compatibility". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2011-11-21. สืบค้นเมื่อ 2009-04-04.
47. ↑  "FAQ: Getting Octave". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2011-11-21. สืบค้นเมื่อ 2009-04-04.
48. ↑  "Top (GNU Octave (version 6.3.0))". *octave.org*.
49. ↑  "Octave for Android - Octave". *wiki.octave.org*. สืบค้นเมื่อ 2021-08-23.
50. ↑  Eaton, John W. "Letting Readline Type For You". *GNU Octave Reference Manual*. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2018-02-12. สืบค้นเมื่อ 2024-03-14.
51. ↑  "FAQ - Octave". *wiki.octave.org*. สืบค้นเมื่อ 2022-12-05.
52. ↑  "MATLAB Central Terms of Use". *www.mathworks.com* (ภาษาอังกฤษ). สืบค้นเมื่อ 2022-12-05.
53. ↑  "File Exchange Licensing FAQ". *www.mathworks.com* (ภาษาอังกฤษ). สืบค้นเมื่อ 2022-12-05.
54. ↑  Hageman, Steve (7 February 2014). "GNU Octave hits a high note". *EDN*.
55. 1 2  Trappenberg, Thomas (2010). *Fundamentals of Computational Neuroscience*. Oxford University Press. p. 361. ISBN 978-0-19-956841-3.
56. ↑  Muhammad, A; Zalizniak, V (2011). *Practical Scientific Computing*. Woodhead Publishing. p. 3. ISBN 978-0-85709-226-7.
57. ↑  Megrey, Bernard A.; Moksness, Erlend (2008). *Computers in Fisheries Research*. Springer Science & Business Media. p. 345. ISBN 978-1-4020-8636-6.
58. ↑  Kapuno, Raul Raymond (2008). *Programming for Chemical Engineers Using C, C++, and MATLAB*. Jones & Bartlett Publishers. p. 365. ISBN 978-1-934015-09-4.
59. ↑  Herman, Russell L. (2013). *A Course in Mathematical Methods for Physicists*. CRC Press. p. 42. ISBN 978-1-4665-8467-9.
60. ↑  Wouwer, Alain Vande; Saucez, Philippe; Vilas, Carlos (2014). *Simulation of ODE/PDE Models with MATLAB, Octave and Scilab: Scientific and Engineering Applications*. Springer. pp. 114–115. ISBN 978-3-319-06790-2.
61. ↑  "FreeMat". *freemat.sourceforge.net*. สืบค้นเมื่อ 22 February 2020.

อ่านเพิ่มเติม
-------------

* Hansen, Jesper Schmidt (June 2011), *GNU Octave. Beginner's Guide*, Packt Publishing, ISBN 978-1-849-51332-6

แหล่งข้อมูลอื่น
---------------

* เว็บไซต์ทางการ Edit this at Wikidata

แม่แบบ:GNUแม่แบบ:Numerical analysis softwareแม่แบบ:Statistical softwareแม่แบบ:Image processing softwareแม่แบบ:FOSS

| ฐานข้อมูลการควบคุมรายการหลักฐาน แก้ไขสิ่งนี้ที่วิกิสนเทศ |
| --- |
| นานาชาติ | 
* VIAF

 |
| ประจำชาติ | 
* ฝรั่งเศส
* BnF data
* เยอรมนี
* อิสราเอล
* สหรัฐ
* เช็กเกีย

 |