Octave 命令

注:本文是基於斯坦福的機器學習課程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

相關文章
相關標籤/搜索