Octave 命令

注:本文是基于斯坦福的机器学习课程

1. A=[1 2;3 4;5 6]

    这样就定义了一个矩阵

   size(A)===>3 3

  如果是向量:B=[1 2 3 4]

  length(B)=4

2.修改路径:cd 'c:\snow'

  load 1.dat    加载文件

  save 1          保存文件

  save hello.mat variable  表示把某个变量存入到文件中

  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

猜你喜欢

转载自my.oschina.net/u/2245781/blog/1815432
今日推荐