注:本文是在觀看了吳恩達(dá)老師的機(jī)器學(xué)習(xí)課程后進(jìn)行的關(guān)于 Octave 的總結(jié)钮追。以下所有命令都在 Octave 的命令行中完成。
?? Octave 是一種編程語言娩鹉,旨在解決線性和非線性的數(shù)值計(jì)算問題攻谁。GNU Octave下載地址
1. 基本操作
- 加法:+
octave:1> 6 + 3
ans = 9
- 減法:-
octave:2> 9 - 5
ans = 4
- 乘法:*
octave:3> 3 * 5
ans = 15
- 除法:/
octave:4> 8 / 2
ans = 4
- 指數(shù)運(yùn)算:^
octave:5> 2 ^ 10
ans = 1024
??在 Octave 中使用 % 來進(jìn)行注釋, % 后的語句不會執(zhí)行弯予。
octave:6> 4 * 5 % * 6
ans = 20
??還有常見的邏輯運(yùn)算:等于 (==) 戚宦、不等于 (~=) 、與 (&&) 熙涤、或 (||) 阁苞,并用 0 表示為真(True), 1 表示為假(False)祠挫。還有異或運(yùn)算 xor 那槽,如 xor(0,1) 。
octave:7> 4 == 6
ans = 0
octave:8> 5 ~= 7
ans = 1
octave:9> 1 && 0
ans = 0
octave:10> 1 || 0
ans = 1
octave:11> xor(0,1)
ans = 1
??使用 PS1 命令可以更改等待命令的樣式等舔,如將上面的 " octave:11> " 更改為 " haixin>> " 可以使用如下命令:PS1('haixin>>');
octave:12> PS1('haixin>>');
haixin>>
2. 變量
??可以使用如下語句: a = 3 給變量 a 賦值 3 骚灸,上述語句會打印結(jié)果,如果使用 a = 6; 語句則不會打印結(jié)果(但會將變量 a 的值更改為 6 )慌植。在 Octave 中 " ; " 不會將語句的執(zhí)行結(jié)果輸出甚牲。如果想看變量 a 的值义郑,只需輸入變量名,或者使用語句 disp(a) 丈钙,可以實(shí)現(xiàn)同一個(gè)功能 非驮。
haixin>>a = 3
a = 3
haixin>>a = 6;
haixin>>a
a = 6
haixin>>disp(a)
6
??也可以給變量賦值為字符串或者布爾值。
haixin>>b = 'hello world'
b = hello world
haixin>>c = (4 <= 5)
c = 1
?? format long 命令輸出字符串默認(rèn)的位數(shù)雏赦,format short 命令輸出少量小數(shù)點(diǎn)后位數(shù)劫笙。也可以使用類似 C語言 風(fēng)格的格式化字符串來控制打印結(jié)果, "0.2%f" 表示 代替 d 放在這里 并顯示 d 值的小數(shù)點(diǎn)后兩位數(shù)字 星岗。(注: pi 為圓周率 π 填大。)
haixin>>d = pi
d = 3.1416
haixin>>format long
haixin>>d
d = 3.141592653589793
haixin>>format short
haixin>>d
d = 3.1416
haixin>>disp(sprintf('2 decimals:%0.2f', d))
2 decimals:3.14
haixin>>disp(sprintf('6 decimals:%0.6f', d))
6 decimals:3.141593
3. 向量與矩陣
??例如,建立一個(gè)矩陣 A 輸入 A = [1 3; 2 6; 3 9] 這會產(chǎn)生一個(gè) 三行兩列的矩陣 A 其第一行是 1 3 俏橘,第二行是 2 6允华, 第三行是 3 9,分號的作用其實(shí)就是在矩陣內(nèi)換行到下一行寥掐⊙ゼ牛或者也可以使用矩陣 B 的方式建立一個(gè)矩陣。
haixin>>A = [1 3; 2 6; 3 9]
A =
1 3
2 6
3 9
haixin>>B = [1,2;
> 3,4;
> 5,6]
B =
1 2
3 4
5 6
??使用命令 V1 = [1 2 3] 可以建立一個(gè) 1 * 3 的行向量( 1行 3 列 )曹仗。使用命令 V2 = [1; 2; 3] 可以建立一個(gè) 3 * 1 的列向量( 3行 1 列 )榨汤。
haixin>>V1 = [1 2 3]
V1 =
1 2 3
haixin>>V2 = [1; 2; 3]
V2 =
1
2
3
??有一些便捷操作,如:V3 = 1:0.1:2 怎茫,會從數(shù)值 1 開始,增量(步長)為 0.1 妓灌,直到
增加到 2 轨蛤,按照這樣的方法得到一個(gè)行向量 V3 。使用 V4 = 1: 6 可以給集合 V4 賦值 1 至 6 的六個(gè)整數(shù)(省略了步長虫埂,默認(rèn)為1)祥山。
haixin>>V3 = 1:0.1:2
V3 =
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000
haixin>>V4 = 1: 6
V4 =
1 2 3 4 5 6
??當(dāng)然,也有一些快捷方式生成矩陣掉伏。例如 "ones(2, 3)"缝呕,可以生成一個(gè)元素全為 1 的 2 行 3 列的矩陣。"zeros(1, 4)"斧散,可以生成一個(gè)元素全為 0 的 1 行 4 列的矩陣供常。"eye( 4)",可以生成一個(gè)主對角線元素全為 1 鸡捐,其余元素全為 0 的單位矩陣栈暇。"rand(3, 3)",可以生成一個(gè)元素全為 0 到 1 之間的隨機(jī)數(shù)的 3 行 3 列的矩陣(均值為 0.5)箍镜。"randn(1, 5)"源祈,可以生成一個(gè)元素符合高斯分布(均值為0煎源,標(biāo)準(zhǔn)差/方差為1)的 1 行 5 列的矩陣。
??正態(tài)分布(Normal distribution)香缺,也稱“常態(tài)分布”手销,又名高斯分布(Gaussian distribution)。最早由A.棣莫弗在求二項(xiàng)分布的漸近公式中得到图张。C.F.高斯在研究測量誤差時(shí)從另一個(gè)角度導(dǎo)出了它锋拖。P.S.拉普拉斯和高斯研究了它的性質(zhì)。是一個(gè)在數(shù)學(xué)埂淮、物理及工程等領(lǐng)域都非常重要的概率分布姑隅,在統(tǒng)計(jì)學(xué)的許多方面有著重大的影響力。
??正態(tài)曲線呈鐘型倔撞,兩頭低讲仰,中間高,左右對稱因其曲線呈鐘形痪蝇,因此人們又經(jīng)常稱之為鐘形曲線鄙陡。
若隨機(jī)變量X服從一個(gè)數(shù)學(xué)期望為μ、方差為σ2的正態(tài)分布躏啰,記為N(μ趁矾,σ2)。其概率密度函數(shù)為正態(tài)分布的期望值μ決定了其位置给僵,其標(biāo)準(zhǔn)差σ決定了分布的幅度毫捣。當(dāng)μ = 0,σ = 1時(shí)的正態(tài)分布是標(biāo)準(zhǔn)正態(tài)分布。
??參考自百度百科:正態(tài)分布
haixin>>ones(2, 3)
ans =
1 1 1
1 1 1
haixin>>zeros(1, 4)
ans =
0 0 0 0
haixin>>eye(4)
ans =
Diagonal Matrix
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
haixin>>rand(3, 3)
ans =
0.6677270 0.5558418 0.3013639
0.0488184 0.3312057 0.0285294
0.0973486 0.6605332 0.0053380
haixin>>randn(1, 5)
ans =
-0.51055 1.57464 0.62477 -0.27377 0.27106
??使用直方圖來演示高斯分布帝际。命令 "hist(W)" 為繪制向量W直方圖蔓同。
haixin>>W = randn(1, 10000);
haixin>>hist(W)
haixin>>hist(W, 50)
??在 Octave 中,可以使用 help 加 方法名 來查看幫助
haixin>>help eye
'eye' is a built-in function from the file libinterp/corefcn/data.cc
-- eye (N)
-- eye (M, N)
-- eye ([M N])
-- eye (..., CLASS)
Return an identity matrix.
If invoked with a single scalar argument N, return a square NxN
identity matrix.
If supplied two scalar arguments (M, N), 'eye' takes them to be the
number of rows and columns. If given a vector with two elements,
'eye' uses the values of the elements as the number of rows and
columns, respectively. For example:
eye (3)
=> 1 0 0
0 1 0
0 0 1
The following expressions all produce the same result:
eye (2)
==
eye (2, 2)
==
eye (size ([1, 2; 3, 4]))
The optional argument CLASS, allows 'eye' to return an array of the
specified type, like
val = zeros (n,m, "uint8")
Calling 'eye' with no arguments is equivalent to calling it with an
argument of 1. Any negative dimensions are treated as zero. These
odd definitions are for compatibility with MATLAB.
See also: speye, ones, zeros.
Additional help for built-in functions and operators is
available in the online version of the manual. Use the command
'doc <topic>' to search the manual index.
Help and information about Octave is also available on the WWW
at https://www.octave.org and via the help@octave.org
mailing list.
haixin>>help help
'help' is a function from the file D:\Octave\Octave-4.4.1\share\octave\4.4.1\m\help\help.m
-- help NAME
-- help --list
-- help .
-- help
Display the help text for NAME.
For example, the command 'help help' prints a short message
describing the 'help' command.
Given the single argument '--list', list all operators, keywords,
built-in functions, and loadable functions available in the current
session of Octave.
Given the single argument '.', list all operators available in the
current session of Octave.
If invoked without any arguments, 'help' displays instructions on
how to access help from the command line.
The help command can provide information about most operators, but
NAME must be enclosed by single or double quotes to prevent the
Octave interpreter from acting on NAME. For example, 'help "+"'
displays help on the addition operator.
See also: doc, lookfor, which, info.
Additional help for built-in functions and operators is
available in the online version of the manual. Use the command
'doc <topic>' to search the manual index.
Help and information about Octave is also available on the WWW
at https://www.octave.org and via the help@octave.org
mailing list.
??最后蹲诀,使用 " quit " 或者 " exit " 命令可以退出 Octave 斑粱。