최근 수정 시각 : 2025-04-15 18:40:29

GNU Octave


[[프로그래밍 언어|'''프로그래밍 언어
{{{#!wiki style="font-family: Times New Roman, serif; display: inline;"
]]
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)"
{{{#!folding [ 목록 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=royalblue><colcolor=#fff> ※ 나무위키에 등재된 프로그래밍 언어 목록
AActionScript · AdaT · AgdaTP · ALGOLT · ApexT · APL · awk · AssemblyT
BBASIC
C파일:C언어 로고.svg CT · 파일:C C#T · 파일:C++ 로고.svg C++T · CarbonT · 파일:clojure_logo.png ClojureS · COBOLT · CoffeeScript · Common LispS · CrystalT
D파일:external/upload.wikimedia.org/D_programming_language_logo.png DT · 파일:Dart 심볼.svg DartT
EElixir · 파일:Elm_logo.svg.png elmT · Erlang
F파일:fsharp-logo.png F#T · Factor · 파일:fennel-logo.svg FennelS · 파일:forth.png Forth · FortranT
GGNU Octave · 파일:Go 로고.svg GoT · Groovy
H파일:Haskell 로고 심볼.svg HaskellT · HolyCT · Haxe
I
J파일:Java 로고.svg JavaT · 파일:JavaScript 로고.svg JavaScript · 파일:julia-dots.svg Julia
K파일:Kotlin 심볼.svg KotlinT
LLeanTP · 파일:LISP_logo.svg LISPS · 파일:Lua 로고.svg Lua
MMATLAB · MaxV · MojoT · Moonlight
N파일:Nim 왕관 로고.svg NimT · 파일:Nix 로고.svg Nix
OOberonT · Objective-CT · 파일:ocaml.svg OCamlT
PPascalT · Perl · 파일:PHP 로고.svg PHP · Processing · Prolog · 파일:Python 심볼.svg Python
QQ#T · QML
R파일:R 로고.svg R · 파일:racket-logo.svg RacketS · Raku · ReasonMLT · 파일:rocq.png RocqTP · 파일:Ruby 로고.svg Ruby · 파일:Rust 로고.svg파일:Rust 로고 화이트.svg RustT
SSAS · 파일:Scala 로고.png ScalaT · SchemeS · 파일:스크래치(교육 플랫폼) 로고.svg ScratchV · sed · Shell Script · Smalltalk · SQL · 파일:Swift 심볼 배경.svg SwiftT
T파일:Typescript_logo_2020.svg TypeScriptT
UUdon
VVisual Basic · Visual Basic .NET · Visual Basic for Applications · vvvvV
WWave
XXSharp
Y
ZZenScript · 파일:Zig 로고마크.svg ZigT
한글누리 · V · 씨앗 · 약속 · 파일:엔트리 아이콘.svg 엔트리V · 창조
T: 정적 타입 프로그래밍 언어 · P: 증명 보조 언어 · S: LISP 방언 및 S-표현식 기반 언어 · V: 시각적 프로그래밍 언어 }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)"
{{{#!folding [ 순위 ]
{{{#!wiki style="margin: -5px -1px -10px"
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ IEEE Spectrum 2025 ]
{{{#!wiki style="margin: -5px -1px"
<tablewidth=100%><tablebgcolor=transparent><colbgcolor=#11a500><colcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 <colbgcolor=#ff1100><colcolor=#fff> 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 Python
2 Java 2 SQL
3 C++ 3 Java
4 SQL 4 JavaScript
5 C# 5 TypeScript
6 JavaScript 6 C#
7 TypeScript 7 C++
8 C 8 HTML
9 Shell 9 Go
10 Go 10 Shell }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ Stack Overflow 2025 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=#ffa500><colcolor=#fff> 2025년 Stackoverflow 설문조사 상위 25개 프로그래밍 언어
1 JavaScript <colbgcolor=#ffa500><colcolor=#fff> 14 Rust
2 HTML & CSS 15 Kotlin
3 SQL 16 Lua
4 Python 17 어셈블리어
5 Bash/Shell 18 Ruby
6 TypeScript 19 Dart
7 Java 20 Swift
8 C# 21 R
9 C++ 22 Groovy
10 PowerShell 23 Visual Basic
11 C 24 VBA
12 PHP 25 MATLAB
13 Go }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ TIOBE 2025 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=#2777c2><colcolor=#fff> 2025년 10월 TIOBE 검색어 점유율 상위 20개 프로그래밍 언어
1 Python <colbgcolor=#2777c2><colcolor=#fff> 11 Fortran
2 C 12 Perl
3 C++ 13 R
4 Java 14 PHP
5 C# 15 Assembly language
6 JavaScript 16 Rust
7 Visual Basic 17 MATLAB
8 Go 18 Scratch
9 Delphi / Object Pascal 19 Ada
10 SQL 20 Kotlin }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ PYPL 2025 ]
{{{#!wiki style="margin: -5px -1px -10px"
<colbgcolor=green><colcolor=#fff> 2025년 11월 PYPL 검색어 점유율 상위 20개 프로그래밍 언어
1 Python <colbgcolor=green><colcolor=#fff> 11 Ada
2 Java 12 TypeScript
3 C++ 13 MATLAB
4 Objective-C 14 Kotlin
5 R 15 PowerShell
6 JavaScript 16 Go
7 C# 17 Dart
8 Swift 18 Ruby
9 PHP 19 Lua
10 Rust 20 VBA }}}}}}}}}}}} }}}}}}}}}}}}
실행 방식 · 분류 · 언어 목록(분류:프로그래밍 언어 문법) · 언어별 예제 · 틀:프로그래밍 언어 문법 · 틀:난해한 프로그래밍 언어

GNU Project
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1px -10px;"
<colbgcolor=#a32d2a><colcolor=#fff,#fff> 관련 문서 GNU · 자유 소프트웨어 재단 · 리처드 스톨먼
소프트웨어 Bash · GNOME · GNU Emacs · GNU IceCat · GNU/Linux · GNUnet · GNU Octave · GNU Screen · groff · GRUB · Midnight Commander · nano · R · Texinfo
<bgcolor=#a32d2a><color#fff> 유틸리티 coreutils(fileutils · textutils · shellutils) · GNU Grep · GnuPG · GNU Tar
<bgcolor=#a32d2a><color#fff> 개발자 도구 Autotools(autoconf · automake) · binutils(BFD · as · ld · gold · gdb) · GCC · glibc · GNU Make
라이선스 GNU 일반 공중 사용 허가서 · GNU 약소 일반 공중 사용 허가서 · GNU Affero 일반 공중 사용 허가서
기타 GNU Unifont
취소선: 독립한 프로젝트
}}}}}}}}} ||
1. 개요2. MATLAB과의 문법상의 차이점3. 장단점
3.1. 장점3.2. 단점
4. 관련 문서5. 외부 링크

1. 개요

GNU Octave는 수치연산을 위한 고수준 프로그래밍 언어이자 소프트웨어이다.

이름에서 드러나듯 GNU 프로젝트의 하나로 당연히 GPL을 따르는 자유 소프트웨어이며 다른 비슷한 자유 소프트웨어 중 유독 MATLAB과의 호환성이 좋아 매트랩을 공부하고 싶지만 돈이 없는 학생이라거나 매트랩을 구매하기 원치 않을 경우 대용품으로 쓸 만한 편이다.

2. MATLAB과의 문법상의 차이점

  • 기본적으로 MATLAB과의 문법적 호환성을 염두에 두고 만들어진 프로그램이지만 차이가 몇 있다.
  • 그 중 OCTAVE의 문법에 좀 더 유연성이 있어서 생기는 차이가 있다.
    • 증감연산자: OCTAVE에서는 C언어 스타일의 증감연산자 (++, --) 나 복합대입연산자 (+=, *=,...) 를 사용할 수 있지만 MATLAB에서는 사용할 수 없다.
    • 부정 논리 연산자: OCTAVE에서는 ~, ! 둘 다 사용할 수 있으나 MATLAB에서는 ~만 사용할 수 있다.
    • 함수값을 넘겨주는 괄호()와 행렬에서 값을 받아오는 괄호()를 연달아 쓸 수 있다. 예를 들어 5차 마방진의 두번째 행을 얻고 싶을 때 Octave에서는
      {{{#!syntax python
magic(5)(2, :)
}}}로 쓸 수 있지만, MATLAB에서는
{{{#!syntax python
temp= magic(5);
temp(2, :)
}}}와 같이 불필요한 변수 temp가 필요하다.

3. 장단점

주로 매트랩의 대체재 내지는 수치해석용 스크립팅 용도로 사용되는 만큼 여기서는 MATLAB이나 기타 스크립팅 언어들(Python 등)과의 차이점을 위주로 설명한다.

3.1. 장점

3.2. 단점

파일:julia160413.png
  • 속도가 느리다. 위 표는 C의 수행속도가 1.00일 때 다른 언어의 상대적인 수행속도를 표시한 결과로, 수치가 낮을 수록 좋다. 성능보다는 MATLAB과의 호환성을 중심으로 만들어졌기 때문이긴 하지만 옥타브는 정말 심각하게 느린 편이라 결국 퍼포먼스가 중요한 실무에서 사용하기엔 무리가 있다.
  • 당연한 얘기지만 MATLAB에 비해서는 지원하는 기능이 떨어진다. 예컨대 table 자료형은 MATLAB과 같이 지원하지만 이 자료형을 유용하게 만들어주는 readtable 함수는 아직 지원하지 않는다.
  • 수치해석을 위한 다양한 툴박스를 제공하는 MATLAB에 비해 Octave는 프로그래밍 환경만을 제공해 사용성이 떨어진다.

4. 관련 문서

5. 외부 링크