日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Octave语法

發(fā)布時(shí)間:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Octave语法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

向量

  • 分號(hào):分割行

  • 空格或逗號(hào):分割列

創(chuàng)建與訪問

行向量

  • 空格或逗號(hào)分割

>> v = [1 2 3] % 等效:v = [1, 2, 3] v =1 2 3>> v(2) % 只有一行,所以指定就是列 ans = 2

列向量

  • 分號(hào)分割

>> v = [1; 2; 3] v =123>> v(2) % 只有一列,所以指定就是行 ans = 2

矩陣

  • 與向量一樣,空格或逗號(hào)分割列,分號(hào)分割行

  • 冒號(hào):代表所有,所有行或所有列

創(chuàng)建

>> A = [1, 2; 3, 4] % 一行寫完 A =1 23 4>> A = [1, 2; % 分行寫 > 3, 4] A =1 23 4

創(chuàng)建技巧

  • a:c --- 從a到c

  • a:b:c --- 從a,間隔b,到c

  • 向量也可以用這樣的方法創(chuàng)建

>> A = [1:3; 4:6] A =1 2 34 5 6>> A = [1:2:5; 2:2:6] A =1 3 52 4 6

特殊矩陣

單位矩陣

>> eye(3) % 單位矩陣 ans =Diagonal Matrix1 0 00 1 00 0 1>> flipud(eye(3)) ans =Permutation Matrix0 0 10 1 01 0 0

轉(zhuǎn)置矩陣

A =1 23 4>> A' ans =1 32 4

逆矩陣

A =1 23 4>> pinv(A) ans =-2.00000 1.000001.50000 -0.50000>> pinv(A) * A ans =1.00000 0.00000-0.00000 1.00000

全1矩陣

>> ones(2, 3) ans =1 1 11 1 1

全0矩陣

>> 0*ones(2, 3) ans =0 0 00 0 0 >> zeros(2, 3) ans =0 0 00 0 0

隨機(jī)矩陣

>> rand(1, 3) % 0~1的隨機(jī)數(shù),13列 ans =0.99291 0.65946 0.95102

高斯分布矩陣

>> randn(1, 3) % 高斯分布 ans =0.14646 2.02587 1.33266

訪問

  • 冒號(hào):代表所有,所有行或所有列

訪問元素

A =1 2 34 5 67 8 9>> A(2, 2) % 第二行,第二列,先定行再定列 ans = 5

訪問單行或單列

>> A(1, :) % 第一行,所有,元素 ans =1 2 3>> A(:, 2) % 第二列,所有,元素 ans =258

訪問多行或多列

>> A(:, [1, 3]) % 第一列和第三列,所有,元素 ans =1 34 67 9>> A([1, 3], :) % 第一行和第三行,所有,元素 ans =1 2 37 8 9

連接

  • C = [A B],把B按列加到A上,生成C

  • C = [A; B],把B按行加到A上,生成C

添加元素

>> A = [1] A = 1>> A = [A, 2] % 把2,按列,添加到A上,再賦給A A =1 2>> A = [A; 3] % A有兩列,3只有一列,規(guī)模不匹配 error: vertical dimensions mismatch (1x2 vs 1x1)

添加行或列

>> A = [A; [3, 4]] % 將向量[3, 4],作為行,添加到A上,在賦給A A =1 23 4>> A = [A, [5; 6]] % 將向量[5, 6],作為列,添加到A上,在賦給A A =1 2 53 4 6

矩陣連接

>> A = [1, 2; 3, 4] A =1 23 4>> B = [5, 6; 7 ,8] B =5 67 8>> [A; B] % 將B,作為行,添加到A上 ans =1 23 45 67 8

所有的數(shù)據(jù)放入一個(gè)向量中

>> A A =1 23 4>> A(:) ans =1324>> A(:)' ans =1 3 2 4

賦值

  • 在訪問基礎(chǔ)上,給定相同規(guī)模的數(shù)據(jù)

A =1 2 34 5 67 8 9>> A(3, 3) = 10 % 修改單個(gè)元素的值 A =1 2 34 5 67 8 10>> A(1, :) = [0, 0, 0] % 修改一行的值 A =0 0 04 5 67 8 10>> A(2:3, 2:3) ans =5 68 10>> A(2:3, 2:3) = [0, 0; 0, 0] % 修改指定矩陣的值 A =0 0 04 0 07 0 0

運(yùn)算

加,減

>> A = [1 1; 1 1] A =1 11 1>> B = [2 2; 2 2] B =2 22 2>> A + B ans =3 33 3>> A - B ans =-1 -1-1 -1>> A - 1 ans =0 00 0

相乘

>> A = [1 2; 3 4] A =1 23 4>> B = [5 6; 7 8] B =5 67 8>> A * B ans =19 2243 50>> -A % -1 * A ans =-1 -2-3 -4

點(diǎn)運(yùn)算

對(duì)應(yīng)元素運(yùn)算

  • 維度相同:對(duì)應(yīng)元素相乘

  • 行維度相同:每行對(duì)應(yīng)元素相乘

  • 列維度相同:每列對(duì)應(yīng)元素相乘

  • A .* B = B .* A

  • 乘 *;除 /; 平方 ^;等

維度相同

A =1 11 1B =2 32 3>> A .* B ans =2 32 3

行維度相同

A =1 11 1B =5 6>> A .* B ans =5 65 6

列維度相同

A =1 11 1B =56>> A .* B ans =5 56 6

點(diǎn)除

  • 矩陣乘以常數(shù),A * 2,除可以是,A / 2

  • 反過來(lái),2 * A沒問題,2 / A 就不行,要用2 ./ A

A =1 23 4>> 1 ./ A ans =1.00000 0.500000.33333 0.25000

邏輯

  • 每一個(gè)元素做比較,標(biāo)記0或1

  • &gt, <, ==, !=(或~=), &&, ||

A =1 23 4>> A > 2 ans =0 01 1

位運(yùn)算

  • 或 | ,函數(shù)xor

  • 且 &

  • 非 ~

  • 異或 ^

控制語(yǔ)句

if

i = 1 >> if i == 1 > disp(1) > elseif i == 2 > disp(2) > else > disp(3) > end

for

>> for i = 1:3 % 從13 > disp(i) > end123

while

>> while i <= 3 > disp(i) > i = i + 1 > end123

break,continue

與C、C++、Java沒有區(qū)別

函數(shù)

  • size:獲取矩陣維度

  • length:獲取最大維度

  • who:變量列表

  • whos:變量詳情

  • clear 變量名:刪除指定變量

  • clear:刪除所有變量

  • find:返回符合條件元素的下標(biāo)

  • log:log以e為底

  • exp:e的多少次方

  • abs:絕對(duì)值

  • floor:向下取整

  • ceil:向上取整

  • sum:求和

  • prop:求積

size

  • 獲取矩陣維度

A =1 23 45 6 >> aSize = size(A) aSize =3 2>> size(A, 1) % 3行 ans = 3>> size(A, 2) % 2列 ans = 2

length

  • 獲取最大維度

A =1 23 45 6>> length(A) % 輸出最大維度 ans = 3

who

變量列表

>> who % 現(xiàn)在都有哪里變量 Variables in the current scope:A aSize ans featuresX w

whos

變量詳情

>> whos % 變量詳情 Variables in the current scope:Attr Name Size Bytes Class==== ==== ==== ===== =====A 3x2 48 doubleaSize 1x2 16 doubleans 1x20 20 charfeaturesX 27x2 432 doublew 1x10000 80000 doubleTotal is 10082 elements using 80516 bytes

clear

刪除變量

>> clear featuresX >> who Variables in the current scope:A aSize ans w >> clear % 清除全部變量 >> who % 一個(gè)變量都沒有了

find

  • 返回符合條件元素的下標(biāo)

A =5 67 8>> [r, c] = find(A > 6) % 符合要求的是:第二行第一個(gè)和第二行第二個(gè) r =22c =12

sum

求和

>> A = [1, 2; 3, 4] A =1 23 4>> sum(A) % 等效:sum(A, 1) ans =4 6>> sum(A, 2) ans =37

prod

求積

>> A A =1 23 4>> prod(A) % 等效:prod(A, 1) ans =3 8>> prod(A, 2) ans =212

max

向量

>> a = [1 5 2 3.3] a =1.0000 5.0000 2.0000 3.3000>> max(a) ans = 5>> [val, ind] = max(a) val = 5 ind = 2

矩陣比較

兩個(gè)矩陣比較每個(gè)元素,保留大的

>> A = rand(3) A =0.2620788 0.6346345 0.46591610.0880455 0.1258945 0.00795590.0296765 0.7917592 0.4321800>> B = rand(3) B =0.039237 0.672424 0.2146490.491320 0.362929 0.1976260.821090 0.675265 0.698960>> max(A, B) ans =0.26208 0.67242 0.465920.49132 0.36293 0.197630.82109 0.79176 0.69896

行與列的最大值

參數(shù)二:與之比較的矩陣
參數(shù)三:按行還是按列

>> A = [1 2; 3 4] A =1 23 4>> max(A) % 每列最大值 ans =3 4>> max(A, [], 1) % 每列最大值 ans =3 4>> max(A, [], 2) % 每行最大值 ans =24

randperm

生成亂序序列

>> A = [2, 3, 4 ,5 ,6] A =2 3 4 5 6 >> rand_indices = randperm(length(A)) rand_indices =1 2 4 5 3 >> A(:, rand_indices(1:3)) ans =5 6 2

自定義函數(shù)

創(chuàng)建步驟

  • 創(chuàng)建存放函數(shù)的文件(文件名要與函數(shù)名相同,.m結(jié)尾)

square.m
  • 創(chuàng)建函數(shù)

% 一個(gè)返回值 function 返回值 = 函數(shù)名(參數(shù)列表)函數(shù)體 end% 多個(gè)返回值 function [返回值1, 返回值2] = 函數(shù)名(參數(shù)列表)函數(shù)體 end function y = square(x)y = x^2; endfunction [y1, y2] = squareAndCube(x)y1 = x^2;y2 = x^3; end

調(diào)用

  • 進(jìn)入到存放函數(shù)文件的目錄

  • 添加存放函數(shù)文件的目錄,到,搜索路徑

>> cd Downloads/ % 進(jìn)入存放函數(shù)文件的目錄 >> square(2) ans = 4>> addpath('~/Downloads') % 添加到搜索路徑 >> cd .. >> square(2) ans = 4

數(shù)據(jù)

路徑

與Linux命令一樣

>> pwd % 當(dāng)前路徑 ans = /Users/XXX>> cd ~/Developer>> pwd ans = /Users/XXX/Developer>> ls % 列出目錄文件和文件夾>> cd .. % 回到上級(jí)目錄

載入與保存

>> load featuresX.dat % 載入數(shù)據(jù),變量名為featuresX >> data = load('ex1data1.txt'); % 變量名為data>> save featuresX.mat featuresX; % 將featuresX中的數(shù)據(jù)保存到featuresX文件中 >> save hello.txt v -ascii % 將變量v中得數(shù)據(jù)已a(bǔ)scii編碼方式保存到hello.txt中

其他

命令

  • 簡(jiǎn)化命令行:PS1('>> ');

  • 關(guān)閉圖表:close或close all

  • 命令行清屏:clc

注釋

%后為注釋

打印

自動(dòng)打印

a = 3 % 會(huì)打印數(shù)據(jù) a = 3; % 不會(huì)打印數(shù)據(jù),分號(hào)可以防止輸出

格式化

disp(pi) % 輸出:3.1416 disp(sprintf('pi is %.2f', pi)) % c語(yǔ)言風(fēng)格

默認(rèn)格式

format?long?% 修改默認(rèn)打印格式

幫助

help size % 查看size函數(shù)的幫助文檔 help help % 查看help函數(shù)的幫助文檔

plot

屬性

  • LineWidth:線寬

  • MarkerFaceColor:標(biāo)記顏色

  • MarkerSize:標(biāo)記大小

x,y軸

ylabel('x');
xlabel('y');

直方圖

>> w = -6 + sqrt(10)*randn(1, 10000); >> hist(w) >> hist(w, 30) % 30組 from: https://segmentfault.com/a/1190000004204177

總結(jié)

以上是生活随笔為你收集整理的Octave语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。