Octave的一些基本操作和语法,快速上手Octave,用实例解释

基本语法

1. 直接计算

>> 1+2
ans = 3

2. 变量计算(在最后加上分号";"可以不输出结果)

>> a=1;
>> b=2;
>> a+b
ans = 3

3. 矩阵赋值

>> a=[1 2;3 4; 5 6]
a =

   1   2
   3   4
   5   6

4. 生成一个以0.2为间隔的1x6的行矩阵

>> a=[1:0.2:2]
a =

   1.0000   1.2000   1.4000   1.6000   1.8000   2.0000

生成一个以1为间隔的1x5的行矩阵

>> v=1:5
v =

   1   2   3   4   5

5. 生成矩阵的一些快捷方式

>> b=ones(2,3)
b =

   1   1   1
   1   1   1

>> b=2*ones(2,3)
b =

   2   2   2
   2   2   2

>> b=zeros(2,3)
b =

   0   0   0
   0   0   0

6. 随机生成矩阵

>> w=rand(3,3)
w =

   0.416753   0.445458   0.465859
   0.572142   0.242774   0.846336
   0.067587   0.464393   0.494254

>> w=randn(1,3)
w =

   0.060119   0.374436  -1.593184

7. 对应随机变量w绘制出直方图

>> w=-6+sqrt(10)*(randn(1,10000));
>> hist(w)

在这里插入图片描述

8. 单位矩阵

>> I=eye(3)
I =

Diagonal Matrix

   1   0   0
   0   1   0
   0   0   1

9. 帮助

>> help eye
'eye' is a built-in function from the file libinterp/corefcn/data.cc

移动数据

1. 计算矩阵的大小size

>> A
A =

   1   2
   3   4
   5   6

>> sz=size(A)
sz =

   3   2

2. 计算的行/列大小,size(A,1)返回A的行数,size(A,2)返回A的列数

>> size(A,1)
ans = 3
>> size(A,2)
ans = 2

3. length返回较大的维数

>> length(A)
ans = 3

4. 一些基本的操作

函数意义
pwd显示当前路径
cd‘xx’改变当前路径
ls显示桌面路径
load读取文件
who显示当前Octave的所有变量
whos显示变量的详细信息
clear xx清除变量xx
clear清空变量
save xx v -ascii将v以ASCII码的方式保存至xx文件中

5. 矩阵取值
①取某个具体的值

 >> A
A =

   1   2
   3   4
   5   6

>> A(3,2)
ans = 6

②取整列“:”冒号代表在该行/列的所有元素

>> A(2,:)
ans =

   3   4

③同时取多列

>> A([1,3],:)
ans =

   1   2
   5   6

6. 矩阵赋值

>> A(:,2)=[10;11;12]
A =

    1   10
    3   11
    5   12

7. 矩阵新增

>> A=[A,[100;101;102]]
A =

     1    10   100
     3    11   101
     5    12   102

8. 矩阵合并
①C=[A B] (合并)

>> A
A =

     1    10   100
     3    11   101
     5    12   102

>> B
B =

   1
   2
   3

>> C=[A B]
C =

     1    10   100     1
     3    11   101     2
     5    12   102     3

②C=[A;B] (上下合并)

 >> A
A =

     1    10   100
     3    11   101
     5    12   102

>> B=[1 3 6]
B =

   1   3   6

>> C=[A;B]
C =

     1    10   100
     3    11   101
     5    12   102
     1     3     6

计算数据

1.A为一个矩阵
*注意:A*B做的是矩阵乘法,而A.B做的是元素间的乘法

操作意义
A.*B将A的每个元素与B的每个元素相乘
A.^2将A的每个元素平方
1./A将A的每个元素取倒数
log(A)将A的每个元素取对数
exp(A)将A的每个元素以e为底去对数
abs(A)取A的绝对值
-A取A的相反数
A’A的转置
A+1A的每个元素加1
pinv(A)求A的伪逆矩阵

2. 当a=[1 2 0.5 4 11]时

操作意义
max(a)求得a中的最大值
[val,ind]=max(a)val为a中的最大值,ind为最大值的下标
a<3对比a中每个元素与3的大小
find(a<3)找出比3小的元素
sum(a)求a的和
prod(a)求a的乘积
floor(a)对a向下取整
ceil(a)对a向上取整

注意:当a如果为一个矩阵的话,sum(a)得到的是每一列的最大值。默认是以列为单位的。
max(a,[],1)求a每列的最大值,max(a)默认就是求每列的最大值
max(a,[],2)求a每行的最大值

3. magic()函数,生成的矩阵每行、每列、对角线的元素的和为用一个值。一般用于快速生成一个矩阵。

>> A=magic(3)
A =

   8   1   6
   3   5   7
   4   9   2

>> sum(A)
ans =

   15   15   15

数据绘制

  1. 首先我们来看一个实例:
>> t=[0:0.01:0.98];
>> y1=sin(2*pi*4*t);
>> plot(t,y1)
>> hold on;
>> y2=cos(2*pi*4*t);
>> plot(t,y2)
>> xlabel('time')
>> ylabel('value')
>> title('my plot')
>> legend('sin','cos')
>>> close
操作意义
plot()plot函数常常被用于绘制各种二维图像
xlabel()设置x的坐标名
ylabel()设置y的坐标名
title()设置标题
legend()设置图标
close关闭图像

得到的图像为:
在这里插入图片描述

  1. 我们也可以将图像绘制成1*2的格子
>> subplot(1,2,1); #使用第一个格子
>> plot(t,y1)
>> subplot(1,2,2) #使用第二个格子
>> plot(t,y2)
> axis([0.5 1 -1 1]) #设置坐标

我们可以得到图像
在这里插入图片描述

  1. 来看一个有色彩的例子
>> A=magic(5)
>> imagesc(A)

得到的图像为:
在这里插入图片描述
我们也可以为之设定为特定的色系

>>  imagesc(A),colorbar,colormap gray;

得到的图像为:
在这里插入图片描述

控制语句

1. for循环

>> for i=1:10,
      v(i)=i^2;
   end
>> v
v =

     1     4     9    16    25    36    49    64    81   100

2. while循环

>> i=1;
>> while i<=5,
   i=i+1;
   v(i)=i;
   end;
>> v
v =

   0   2   3   4   5   6

3. if语句

>> for i=1:10,
     w(i)=i;
     if i==3,
        break;
     end;
  end;
>> w
w =

   1   2   3

4. elseif语句

>> if a==0,
      disp('zero');
   elseif a==1;
      disp('one');
   else,
      disp('no');
   end;
one

5. 函数的调用
先建立一个“.m”文件用于存放函数,然后在命令行中应用该路径地址
例如存放一个代价函数

function J = costFunction (x,y,theta)
  m=size(x,1);
  predictions=x*theta;
  sqr =(predictions-y).^2;
  J = 1/(2*m)*sum(sqr);

endfunction

然后引入路径

>> addpath('C:\Users\hp')

调用函数

>> x=[1 1; 1 2; 1 3];
>> y=[1;2;3];
>> theta=[0;1];
>> j=costFunction(x,y,theta)
j = 0
  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值