基本操作:
功能 | 實現(xiàn) |
---|---|
四則運算 | +,-谴忧,*,/ |
邏輯運算 | ==,~=,&&凑懂,||膘螟,xor() |
注釋 | % |
打印 | disp() ,disp('6 decimals: 0.6f', a) |
向量 | [1 2; 3 4;]枚荣,[1, 2; 3, 4;](最后的分號可有可無) |
初始化行向量從1到2,步長0.1 | 1 : 0.1 : 2啼肩, 1 : 6(步長默認(rèn)1) |
元素全為1的矩陣 | ones(2,3)(兩行三列全為1的矩陣)橄妆,2*ones(2,2) |
元素全為0的矩陣 | zeros(2,3) |
生成元素隨機矩陣 | rand(2,3)(數(shù)值介于0和1之間) |
生成平均值為0的高斯分布 | randn(1,3) |
生成單位矩陣 | eye(4) |
幫助 | help eye,help help |
查看矩陣大小 | size(W,2) (默認(rèn)行向量祈坠,1(行)2(列)) |
查看最大的行或者列的大小 | length() |
返回一個元素 | W(3,2) |
返回行 | W(3, :) |
返回列 | W(:, 2) |
返回第n和m行 | W([n, m], :) |
給矩陣添加新的列 | W = [W, [100; 101; 102]] |
把元素全部變成一個列向量 | W(:) |
組合兩個矩陣 | [A B]害碾,[A ; B] |
對應(yīng)元素位操作 | .* , .^ 赦拘, ./ |
對每個元素求對數(shù) | log(W) |
每個元素作為e的指數(shù) | exp(W) |
對每個元素求絕對值 | abs(W) |
求轉(zhuǎn)置 | W' |
返回最大一行慌随,向量返回最大值 | max(W) |
矩陣判斷大小,返回一個矩陣 | a=[1,2,3]; b=a<2; b:[1,0,0] |
查找函數(shù) | 按條件查找find(a<3)躺同,返回index |
n階幻方生成 | magic(n) |
對各元素求和 | sum(W) |
對各元素求積 | prod(W) |
向下取整 | floor(W) |
向上取整 | ceil(W) |
比較兩個元素儒陨,返回最大值 | max(rand(3),rand(3)) |
返回列最大 | max(W, [], 1) |
返回行最大 | max(W, [], 2) |
返回矩陣最大的元素值 | (max(max(W))) |
翻轉(zhuǎn)矩陣 | flipud(W) |
偽逆矩陣 | pinv(W) |
移動數(shù)據(jù):
功能 | 實現(xiàn) |
---|---|
加載文件 | load filename,load('filename') |
展示當(dāng)前Octave存儲的變量 | who笋籽,whos(詳情) |
清除變量 | clear W蹦漠,clear(清除所有變量) |
存儲文件 | save hello.mat W(二進制),save hello.txt W -ascii |
將數(shù)據(jù)畫圖:
功能 | 實現(xiàn) |
---|---|
畫圖 | plot(x, y1) |
畫直方圖 | hist(W)车海,hist(W,50) |
在原來的圖上畫圖 | hold on;plot(x, y2, 'r')('r'表示紅色) |
標(biāo)記x笛园,y軸 | xlabel('time');ylabel('value') |
標(biāo)記兩條線 | legend('sin','cos') |
標(biāo)題 | title('myplot') |
打印圖片 | cd 'c:' print -dpng 'myplot.png' |
關(guān)閉圖像 | close |
給圖像編號 | figure(1); plot(t,y1); figure(2); plot(t,y2) |
給圖像分格子 | subplot(1,2,1)(分兩個格子,當(dāng)前使用第一個) |
改變刻度 | axis([0.5 1 -1 1]) |
清除圖像 | clf |
矩陣可視化 | imagesc(W) |
矩陣可視化之修改成灰度圖 | imagesc(W), colorbar, colormap gray; |
連續(xù)執(zhí)行命令 | ',' 可以使得命令順序執(zhí)行侍芝,如上 |
其他功能
功能 | 實現(xiàn) |
---|---|
添加文件夾路徑 | addpath() |
Octave的控制語句:
for循環(huán):
for i=1:10,
v(i) = 2^i;
end;
while循環(huán):
i=1;
while i <= 5,
v(i) = 100;
i = i+1;
end;
if和break語句:
i=1;
while true,
v(i) = 999;
i = i+1;
if i == 6,
break;
end;
end;
if elseif的使用:
v(1) = 3;
if v(1) == 1,
disp('The value is one');
elseif v(1) == 2,
disp('The value is two');
else
disp('The value is not one or two');
end;
盡量使用向量化的實現(xiàn)研铆,有助于減少代碼的書寫并提高性能和正確率。