码迷,mamicode.com
首页 > 其他好文 > 详细

6、Octave教程

时间:2018-12-26 20:15:47      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:相加   换行   fan   变量赋值   octave   color   设置图   hide   flip   

变量

变量赋值

技术分享图片
a = 3  % 输出a = 3
a = 4; % 添加了“;”不会输出, %为注释符号
View Code

变量打印

技术分享图片
a = pi   % 输出a =  3.1416

disp(a)  % 输出 3.1416

% disp为打印函数

disp(sprintf(2 decimals: %0.2f,a))  % 输出2 decimals: 3.14

format long

a   % a =  3.141592653589793

format short

a  % a =  3.1416
View Code

基本运算符

技术分享图片
%  +、-、*、/、^
5+6 % ans = 11
3-2  % ans = 1
5*8  % ans = 40
1/2  %ans=0.50000
2^6  % ans = 64

% 等于、不等于
1 == 2  % ans = 0
1 ~= 2  % ans = 1

%与、或、异或
1&&0  % ans = 0
1||0   % ans = 1
xor(1, 0)  % ans = 1
View Code

矩阵

创建矩阵

技术分享图片
>> A = [1 2; 3 4; 5 6]   %2X3矩阵,""的作用是矩阵换行
A =

   1   2
   3   4
   5   6

>> V = 1:0.1:2  % 创建从1到2,间隔0.1的的行向量
V =

 Columns 1 through 8:

    1.0000    1.1000    1.2000    1.3000    1.4000    1.5000    1.6000    1.7000

 Columns 9 through 11:

    1.8000    1.9000    2.0000

>> V = 1:6 %创建1-6的行向量
V =

   1   2   3   4   5   6

>> ones(3)  %创建全1的3x3矩阵,ones(行,列),如果只有一个就代表行列相同
ans =

   1   1   1
   1   1   1
   1   1   1

>> ones(2,3)  %创建全1的2x3矩阵
ans =

   1   1   1
   1   1   1
>> c = 2*ones(2,3)
c =

   2   2   2
   2   2   2
>> zeros(3)
ans =

   0   0   0
   0   0   0
   0   0   0

>> zeros(2,3)
ans =

   0   0   0
   0   0   0

>> rand(5) %随机生成元素在[0, 1]之间的矩阵
ans =

   0.759038   0.356755   0.759957   0.765575   0.124526
   0.478474   0.748071   0.348113   0.140318   0.735799
   0.548857   0.919435   0.022937   0.766650   0.658001
   0.282714   0.682380   0.333799   0.646410   0.045325
   0.657188   0.273806   0.433459   0.812108   0.349532

>> rand(2,3)
ans =

   0.81680   0.65483   0.26669
   0.23447   0.64541   0.73921

>> randn(3) %随机生成元素服从正态分布(高斯分布)
ans =

  -1.772650   0.571952   2.728738
   0.096214   0.996951  -1.083561
   0.359641  -0.571054  -1.124300

>> randn(2,3)
ans =

   0.242999   0.326736   0.372448
  -0.785784  -0.086886  -0.571480
View Code
技术分享图片
>> eye(5)   % 单位矩阵
ans =

Diagonal Matrix

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

>> w = -6 + sqrt(10)*(randn(1,10000));    % sqrt开根号
>> hist(w)    % 生成直方图
>> hist(w, 50)   % 50代表生成50个直方柱形
View Code

help eye帮助函数

移动数据

技术分享图片
>> A = [1 2; 3 4; 5 6]  % 创建矩阵
A =

   1   2
   3   4
   5   6

>> size(A)    %返回矩阵的大小,返回结果也是一个矩阵
ans =

   3   2

>> size(A, 1)  % 返回矩阵的行数
ans =  3
>> size(A, 2)  % 返回矩阵的列数
ans =  2
>> length(A)   % 返回矩阵最大维度数
ans =  3
View Code
技术分享图片
Pwd % 显示octave的当前所在目录
cd url  %改变当前工作目录
ls % 显示当前目录下的路径和文件
View Code
技术分享图片
>> load my.txt   % 导入文件:load  path 或者 load(‘path’) path文件路径
>> my  % 文件名
my =

   1
   2
   3
   4
   5
   6
   7

>> load(my.txt)
>> my
my =

   1
   2
   3
   4
   5
   6
   7

>>
View Code
技术分享图片
>> who  % who查看octave当前工作空间存储的所有变量
Variables in the current scope:

A    ans  my

>> whos  % whos查看octave当前工作空间存储的所有变量的详细信息
Variables in the current scope:

   Attr Name        Size                     Bytes  Class
   ==== ====        ====                     =====  =====
        A           3x2                         48  double
        ans         1x17                        17  char
        my          7x1                         56  double

Total is 30 elements using 121 bytes
View Code
技术分享图片
clear 变量名称  %删除变量

clear   %删除所有变量
View Code
技术分享图片
% 把数据存入文件:  save 文件名字  变量名称;
>> A
A =

   1   2
   3   4
   5   6

>> save test.mat A;  %二进制存储
>> save test.txt A -ascii;  % 存储为ascii编码
View Code

取矩阵元素

技术分享图片
>> A
A =

   1   2
   3   4
   5   6

>> A(1,1)
ans =  1
>> A(2,:) %’:’表示取该行或者该列的所有元素
ans =

   3   4

>> A(:,2)  
ans =

   2
   4
   6

>> A([1 3], :) %取第1、3行的所有列元素
ans =

   1   2
   5   6
View Code

修改矩阵的值

技术分享图片
>> A(:,2)=[10;11;12] %重新赋值A的第二列元素
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

>>
View Code
技术分享图片
A =

   1   2
   3   4
   5   6

>> B
B =

   11   12
   13   14
   15   16

>> C = [A B] %把AB矩阵左右结合为C矩阵
C =

    1    2   11   12
    3    4   13   14
    5    6   15   16

>> D = [B A]
D =

   11   12    1    2
   13   14    3    4
   15   16    5    6

>> D = [B, A]
D =

   11   12    1    2
   13   14    3    4
   15   16    5    6

>> F = [A;B] %把AB矩阵上下结合为D矩阵
F =

    1    2
    3    4
    5    6
   11   12
   13   14
   15   16
View Code

矩阵运算

技术分享图片
>> A
A =

   1   2
   3   4
   5   6

>> B
B =

   11   12
   13   14
   15   16

>> C = [1 1; 2 2]
C =

   1   1
   2   2

>> A*C
ans =

    5    5
   11   11
   17   17

>> A.*B % A中对应元素乘B中对于元素,“.” 通常表示矩阵元素运算
ans =

   11   24
   39   56
   75   96

>> A.^2  % A中元素各自的平方
ans =

    1    4
    9   16
   25   36

>> 1./A % A中元素各自的倒数
ans = 

   1.00000   0.50000
   0.33333   0.25000
   0.20000   0.16667
>> log(A)  % 对A中元素求对数
ans =

   0.00000   0.69315
   1.09861   1.38629
   1.60944   1.79176

>> exp(A) % 以e为底A中元素为指数的幂运算
ans =

     2.7183     7.3891
    20.0855    54.5982
   148.4132   403.4288

>> abs(A)  % 对A中元素求绝对值
ans =

   1   2
   3   4
   5   6

>> -A
ans =

  -1  -2
  -3  -4
  -5  -6

>> abs(-A)
ans =

   1   2
   3   4
   5   6
View Code
技术分享图片
>> A + 1 % 对A中的元素加1
ans =

   2   3
   4   5
   6   7

>> A + ones(length(A), 2)
ans =

   2   3
   4   5
   6   7

>> A %A的转置矩阵
ans =

   1   3   5
   2   4   6

>> val = max(A) %求A中的每一列的 最大元素
val =

   5   6

>> [val, ind] = max(A)  % 返回值和索引
val =

   5   6

ind =

   3   3

>> A < 3  % A中元素与3比较正确返回1,错误返回0
ans =

  1  1
  0  0
  0  0

>> find(A < 3) %返回A中元素与3比较正确的索引
ans =

   1
   4

>> A
A =

   1   2
   3   4
   5   6
>> [r,c]=find(A<3)
r =

   1
   1

c =

   1
   2
View Code
技术分享图片
>> A = magic(3) %生成任意行、列和每个对角线相加都相等的矩阵
A =

   8   1   6
   3   5   7
   4   9   2

>> sum(A) %每一列和
ans =

   15   15   15

>> prod(A) %每一列乘积
ans =

   96   45   84

>> floor(A) % 向下取整
ans =

   8   1   6
   3   5   7
   4   9   2

>> ceil(A) % 向上取整
ans =

   8   1   6
   3   5   7
   4   9   2

>> max(A) % 每一列的最大值
ans =

   8   9   7

>> max(A, [], 1) % 1表示列
ans =

   8   9   7

>> max(A, [], 2) % 2表示行
ans =

   8
   7
   9

>> flipud(A) % 表示使矩阵垂直翻转
ans =

   4   9   2
   3   5   7
   8   1   6

>> pinv(A)   % A的逆矩阵
ans =

   0.147222  -0.144444   0.063889
  -0.061111   0.022222   0.105556
  -0.019444   0.188889  -0.102778
View Code

数据可视化 

技术分享图片
>> t = [0:0.01:0.98];   %创建步长为0.01的矩阵
>> y1 = sin(2*pi*4*t);  
>> plot(t, y1)  % 画图
>> y2 = cos(2*pi*4*t);
>> plot(t, y2);  

% 两个图画一个页面上
>> plot(t, y1);
>> hold on;   
>> plot(t, y2)


>> plot(t, y2, r); % 设置线颜色
>> xlabel(time);  % 设置x轴标签
>> ylabel(valve); % 设置y轴标签
>> legend(sin,cos); % 设置图形标签
>> print -dpng test.png;  % 保存图片为png
View Code

子图

 

6、Octave教程

标签:相加   换行   fan   变量赋值   octave   color   设置图   hide   flip   

原文地址:https://www.cnblogs.com/jp-mao/p/10180663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!