注:本文是基於斯坦福的機器學習課程git
1. A=[1 2;3 4;5 6]機器學習
這樣就定義了一個矩陣函數
size(A)===>3 3學習
若是是向量:B=[1 2 3 4]orm
length(B)=4blog
2.修改路徑:cd 'c:\snow'ci
load 1.dat 加載文件element
save 1 保存文件字符串
save hello.mat variable 表示把某個變量存入到文件中it
save hello.txt C -ascii %save as text(ASCII)
3.who 顯示當前全部的變量名稱
whos 顯示當前變量的名稱和詳細的信息
clear variable 表示清楚某個變量
4.對變量的操做
A(3,2) %第三行第二列
A(2,:) %第二行,全部的元素
A(:,2)=[10;11;13] %修改了第二列的全部值
A(:) %修改A爲一個列向量
C=[A B] %直接鏈接兩個,A在左,B在右
C=[A ;B] %直接鏈接兩個,A在上,B在右=下
5.矩陣之間的運算
A,B都是矩陣
A*B %計算A 和B的乘積
. 表示對每個元素進行某種操做,例如:
1 ./A %表示取A中每個元素的倒數
log(A) %表示對A中的每個元素取其對數
exp(A) %表示對A中的每個元素取其天然指數
abs(A) %表示對A中的每個元素取其絕對值
-A %表示對A中的每個元素取反
A+1 %表示對A中的每個元素加1
max(A) %表示求出A中的最大值,可是須要注意,若是A是矩陣的話,是對每一列求出最大值,若是A是向量,則是直接求出最大值
find(a<3) %找出向量中小於3的數字
a<3 %返回的是01字符串,表示每一個元素是否小於3
sum(a) prod(a) floor(a) ceil(a) %
sum(A,1) %表示對每一行求全部元素的和
sum(A,2) %表示對每一列求全部元素的和
sum(sum(A.*eye(9))) %求出A的對角線之和
max(rand(3),rand(3) ) %將會返回一個3*3的矩陣,每個元素都是隨機生成的矩陣對應的兩個元素的最大值
max(A,[],1) %將會返回一個行矩陣,是A中每一列的最大值
max(A,[],2) %將會返回一個列矩陣,是A中每一行的最大值
max(A) %是對每一列求出最大值
max(max(A)) %求矩陣的最大值 或是也能夠先把矩陣變成列 A(:) 而後求max,max(A(:))
A+單引號 %表示求A的轉置
pinv(A) %求出A的逆矩陣
6.函數建立矩陣
ones ,zero 建立全1或者全0的矩陣
diag(1,2,3) %建立對角線是1,2,3,其餘所有是0的矩陣
e=[] %建立一個空的矩陣
eye(3) %建立一個3*3的單位矩陣
7.數據的可視化
>> t=[0:0.01:0.98];
>> y1=sin(8*pi*t);
>> y2=cos(8*pi*t);
>> plot(t,y1);
>> hold on;
>> plot(t,y2,'r');
>> xlabel('time');
>> ylabel('value');
>> title('my plot');
>> legend('sin','cos');
>> cd 'D:\';print -dpng 'myPng';
>> close %close the figure
clf %清除圖像
figure(1);plot(t,y1);
>> figure(2);plot(t,y2);
>> subplot(1,2,1) %divid 1*2,access the first element
>> plot(t,y2);
>> subplot(1,2,2);
>> plot(t,y1);
>> axis([0.5,1,-2,2])
>> print -dpng '2.png'
imagesc(A), colorbar,colormap gray;
8.控制語句
1.if...else statement
符號 意義 例子
== 等於 if x==y
= 不等於 if x =y
> 大於 if x>y
>= 大於等於 if x>=y
< 小於 if x<y
<= 小於等於 if x<=y
& 與 if x==1 & y>2
| 或 if x==1 | y>2
~ 非 x~= y
這與 C++ 中的語法又必定的差別:Octave 中條件不須要用括號 () 括起來 (固然使用括號會讓程序更加明
了), 並且 statments 程序塊不須要用大括號{ } 括起來。另外,Octave 中須要用 end 命令來標識 if 語句的
結束。在 Octave 中,if...end 和 if...endif 都是合法的. 使用 end 可讓 Octave 的文件與 Matlab 文件
兼容.
在 switch 語句中,x 的值依次與 case 中的值比較,若是找到與之相等的值,相應的 statements 將被執 行。注意到在 Octave 中 switch 語句不像 C++ 那樣須要 break 語句——Octave 中找到匹配的選項,執行 statements 中的語句並退出 swith 語句。如果沒有匹配的項,otherwise 中的語句被執行。例如 octave:##> a=1; octave:##> switch a case 0 disp('a is zero'); case 1 disp('a is one'); otherwise disp('a is not a binary digit'); end a is one