Octave簡明教程

LolitaAnn 2021-08-15 21:13:29 阅读数:101

本文一共[544]字,预计阅读时长:1分钟~
octave 明教 教程

這是我參與8月更文挑戰的第15天,活動詳情查看:8月更文挑戰

高人工智能最簡單入手的是octave,用它寫出來之後再轉用python、c++會更方便。

簡介

GNU Octave is a high-level language primarily intended for numerical computations. It is typically used for such problems as solving linear and nonlinear equations, numerical linear algebra, statistical analysis, and for performing other numerical experiments. It may also be used as a batch-oriented language for automated data processing.

GNU Octave是一種高級語言,主要用於數值計算。它通常用於求解線性和非線性方程、數值線性代數、統計分析等問題,以及進行其他數值實驗。它也可以用作自動化數據處理的面向批處理的語言。

這只是做個簡單入門,更多的功能可以看一下官方文檔:octave.pdf

基本

  1. 注釋 %
    • 類似於C++的//和python的#
    • image.png
  2. ans 用於存儲輸出結果
  3. 如果你不喜歡輸入行前綴,可以自定義修改PS1('你想改成的內容');
    • image.png

符運算

算術運算符 加减乘除乘方

octave:1> 1+5
ans = 6
octave:2> 1*5
ans = 5
octave:3> 1/5
ans = 0.2000
octave:4> 1-5
ans = -4
octave:5> 5^2
ans = 25
>>sqrt(5)
ans = 2.2361
>>sqrt(4)
ans = 2
複制代碼

邏輯運算符

  • 等於 ==
  • 不等於~=
  • 或 ||
  • 與 &&
  • 异或 xor(a,b)
  • 大於等於 >=
  • 大於 >
ans = 0
>>1==1
ans = 1
>>1 ~=2
ans = 1
>>1&&2
ans = 1
>>1&&0
ans = 0
>>1||0
ans = 1
>>xor(1,1)
ans = 0
>>xor(1,2)
ans = 0
>>xor(0,1)
ans = 1
>>1>=2
ans = 0
>>1<2
ans = 1
複制代碼

賦值運算符

  • =賦值運算符
    • 語句後邊加分號 不直接打印賦值語句
    • 語句後邊不加分號 直接打印賦值語句
>>a=1 %a=1後邊沒分號,所以輸入回車之後下一行會直接打印a=1
a = 1
>>a %再輸入a回車看看是否賦值成功
a = 1
>>b=2; %b=2後邊加上分號了,所以下一行不會直接打印b的賦值
>>b %輸入b回車,查看給b的賦值
b = 2
>>c=pi
c = 3.1416
複制代碼

格式化輸出

  • disp(x):顯示x的值
  • disp(sprintf('%0.2f',c)):格式化輸出保留兩比特小數,這個和C語言一樣
  • format long/short:對整數無影響,對小數輸出格式有影響
>>disp(a)
1
>>disp(c)
3.1416
>>disp(sprintf('%0.2f',c))
3.14
>>format long
>>a
a = 1
>>c
c = 3.141592653589793
>>format short
>>a
a = 1
>>c
c = 3.1416
複制代碼

向量和矩陣

聲明矩陣官方原話寫的是:

Vectors and matrices are the basic building blocks for numerical analysis. To create a new matrix and store it in a variable so that you can refer to it later, type the command

octave:1> A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]

Octave will respond by printing the matrix in neatly aligned columns.

>>martix = [1,2,3;4,5,6;7,8,9]
martix =
1 2 3
4 5 6
7 8 9
複制代碼

當然還有很多其他寫法,雖然不規範也能聲明矩陣,這裏就不列舉了。

聲明行向量,各個元素之間不用加符號,或者加逗號。

martix =
1 2
2 3
3 4
>>vector=[1 2 3]
vector =
1 2 3
>>vector = [4;5;6]
vector =
4
5
6
複制代碼

其他特殊寫法

  • 變量 = 起始:步長:終止 ,就會生成一個向量
    • image.png
  • ones(a,b) 生成a行b列只有1的矩陣
    • image.png
    • 除了ones還有zeros,生成的元素都是0,但是沒有twos、threes……
  • rand(a,b) 生成a行b列的0-1之間隨機數的矩陣
    • image.png
  • randn(a,b) 也是生成a行b列隨機數矩陣,但是符合高斯分布(正態分布)。返回一個具有正態分布隨機元素的矩陣,這些隨機元素的平均值為零,方差為1。
    • 正態分布:
    image.png
  • randi()
    • randi(max,m,n):生成1~max的m行n列矩陣
    • randi([min,max],m,n):生成min~max的m行n列矩陣
    • image.png

hist(變量)

可以畫出變量的圖像 image.png

如果你覺得這樣太少了。那可以使用hist(變量,條紋數),下圖就是畫出50條紋後的圖像。 image.png

版权声明:本文为[LolitaAnn]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/08/20210815211248063n.html