Octave 基础学习

Octave 基础学习


Basic/Logic Operation

  1. 在CLI窗口中,可以直接输入算术运算或者逻辑运算,可以直接计算
octave:2> 5+6
ans = 11
octave:3> 1==2
ans = 0
octave:4> 1 == 2  % false
ans = 0

% 注意:%为注释符号
% PS1 = ('>>') 将每一步前面加两个尖帽

变量设置:直接设置:

>> a = 3
a = 3
>> a = 3; % 加分号结尾不立即输出
>> 

变量或者字符串打印:disp()方法

>> disp(a)
>>3
>>disp(sprintf('2 decimals : %0.2f',a))
>>2 decimals : 3.00

便于打印变量位数的方法: format long/format short

>> a = pi
>> a = 3.1416
>> format long
>> a
>> a = 3.141592653589793
>> format short
>> a
>> a = 3.1416

Matrix and Vector

申明一个矩阵:

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

   1   2
   3   4
   5   6

申明一个列向量:

v = [1;2;3]
v =

   1
   2
   3

快速申明一个固定步长的向量

>> v = 1 : 0.1 :2
v =
 
    1.0000    1.1000    1.2000    1.3000    1.4000    1.5000    1.6000    1.7000    1.8000    1.9000    2.0000

>> v = 1 : 6
v =

   1   2   3   4   5   6

其他快速申明矩阵的方法:

% ones(x,y) 输出一个x行 y列 全是1的矩阵
>> ones(2,3)
>> ans =

   1   1   1
   1   1   1

>> C = 2* ones(3,2) % 快速赋值
C =

   2   2
   2   2
   2   2

% zeros() 同理 

申明随机矩阵:

% rand()方法申请一个随机数矩阵(0~1之间)
>> w = rand (2,3)
w =

   2.6682e-01   3.7727e-02   9.3895e-03
   3.1551e-01   3.0578e-02   4.7607e-01
   
%randn()方法申请一个高斯随机变量
>> w = randn(2,3)
w =

   0.4575  -0.7121  -0.2961
   1.0726  -0.8516   0.9097

申请单位矩阵:eye()方法

>> i = eye(4)
i =

Diagonal Matrix

   1   0   0   0
   0   1   0   0
   0   0   1   0
   0   0   0   1


Little Bit Advanced : )

获得矩阵的大小:size()

% size () 方法可以获得一个矩阵的规格大小
>> A = [1 2;3 4 ;5 6; ]
A =

   1   2
   3   4
   5   6

>> size(A) % 返回的是一个1*2的矩阵
ans =

   3   2
   
>> size(A,1) % 返回第一维度的大小
>> ans = 3
>> size(A,2)
>> ans = 2

获得向量长度的方法:length()

% length() 该方法可以获得向量的长度,也可以获得矩阵最大的那一维度的值
>> v = [1 2 3  4]
v =

   1   2   3   4
>> length(v)
ans = 4

读取数据集:load/load()

% pwd 指令可以查看当前所在目录,可使用cd、ls等指令
load filename.dat
load ('filename.dat')

查看当前变量:who(包括读取的文件)

>> who
Variables visible from the current scope:

A    C    a    aA   ans  i    v    w

>> whos % 更加详细的展示变量
Variables visible from the current scope:

variables in scope: top scope

  Attr   Name        Size                     Bytes  Class
  ====   ====        ====                     =====  =====
         A           3x2                         48  double
         C           3x2                         48  double
         a           1x1                          8  double
         aA          3x2                         48  double
         ans         1x14                        14  char
         i           4x4                         32  double
         v           1x4                         32  double
         w           2x3                         48  double

Total is 59 elements using 278 bytes

数据存储:

>> A
A =

   1   2
   3   4
   5   6
>> e = A(1:3) % 将A的前三个元素存储到e中
e =

   1   3   5
 
% 方便理解,进行了多次测试
>> c = A(1:2)
c =

   1   3

>> c = A(1:4)
c =

   1   3   5   2

>> c = A(2:4)
c =

   3   5   2

>>
% 存储到本地硬盘
>> save hello.txt e % 在当前目录下生成一个hello.txt文件来存储e的数据

操作数据:

>> A (3,2) % 输出第3行2列的值
ans = 6
>> A(1,:)  % 输出第一行所有的元素
ans =

   1   2
>> A([1,3],:) % 输出索引为1,3的行的所有元素
ans =

   1   2
   5   6
   
>> A (:,2) = [10;11;12]  % 赋值为新的值
A =

    1   10
    3   11
    5   12
    
>> A = [A , [100;101;102]] % 在A的右边添加一列向量
A =

     1    10   100
     3    11   101
     5    12   102
     
>> A(:)    %将A中的所有值存到一列向量里去
ans =

     1
     3
     5
    10
    11
    12
   100
   101
   102
   
 >> 1 ./ A   % 得到A中所有元素求倒数的矩阵

矩阵组合:

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

   1   2
   3   4
   5   6

>> B = [11 22 ; 33 44 ; 55 66 ;]
B =

   11   22
   33   44
   55   66

>> C = [A B] % 并行组合
C =

    1    2   11   22
    3    4   33   44
    5    6   55   66

>> C = [A; B] % 垂直组合
C =

    1    2
    3    4
    5    6
   11   22
   33   44
   55   66

数据计算:

>> log(v) % 将每个元素取对数
>> exp(v) % 求e对应各个元素的幕
>> abs(v) % 求每个元素的绝对值

矩阵操作:

>> A = [1;2;3]
A =

   1
   2
   3

>> A' % 转置矩阵
ans =

   1   2   3
   
>> val = max(A) % 返回A中的最大值(默认是每一列的最大值,想获取最大元素可以max(max(A)))
val = 3

>> A < 3 % 将每一个A中的值与3比较,生成一个相同大小的0,1矩阵,每一个成立输出1,有不成立的输出0
ans =

  1
  1
  0

>> A = [A,[10;11;12]]
A =

    1   10
    2   11
    3   12

>> find (A>2) % 用于找到A中满足条件的元素的索引
ans =

   3
   4
   5
   6

>> pinv(A) % 对A求逆
ans =

   0.071429   0.142857   0.214286

元素操作:

>> sum (A,1) % 按列求和(first dimention)
ans =

    6   33
    
>> sum(A,2) % 按行求和(second dimention)
ans =

   11
   13
   15

Visualize Data(tools)

绘制图像:

>> t = [0:0.01:0.98];
>> y1 = cos(2*pi*4*t);
>> y2 = sin(2*pi*4*t);
>> plot (t,y1) % 绘制图像

>> hold on % 两个图像绘制在一个坐标轴里
>> plot (t,y2)
>> xlabel('time') % 设置横纵轴标签
>> ylabel('value')
>> title('myplot')
>> print -dpng 'myPlot.png'
>> close

>> figure(1); plot(t,y1) % 分别显示多个图
>> figure(2); plot(t,y2)

>> subplot(1,2,1) % 将一个plot分为两个方格,将两个图像分别以两个坐标轴存放到一起
>> plot (t,y1)
>> subplot(1,2,2)
>> plot (t,y2)

>> clf; % 清除画像

Control Statements(控制语句)

For()循环:

>> v = zeros(10,1)
v =

   0
   0
   0
   0
   0
   0
   0
   0
   0
   0
   
>> for i = 1:length(v), % 从1遍历到length(v)
> v(i) = 2^i;
> end;
>> v
v =

      2
      4
      8
     16
     32
     64
    128
    256
    512
   1024

While() :

>>  i = 1
i = 1

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

>> v
v =

    100
    100
    100
    100
    100
     64
    128
    256
    512
   1024

if():

>> if v(1) == 1
> 	disp('the value is 1')
> else
>   disp('the value is not 1')
> end;
the value is not 1
>>

function使用:

 %   先在.m后缀的文件内写好所需函数,然后在octave中cd到文件所在文件夹,直接调用即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值