Octave教程(三)

来源:互联网 发布:cst仿真软件价格 编辑:程序博客网 时间:2024/06/08 12:30
矩阵运算
octave:33> A = [1 2; 3 4; 5 6]A =   1   2   3   4   5   6octave:34> B = [11 12; 13 14; 15 16]B =   11   12   13   14   15   16octave:35> C = [1 1; 2 2]C =   1   1   2   2octave:36> A * Cans =    5    5   11   11   17   17octave:37> A .* B       % A中每一个元素与B中对应的元素相乘ans =   11   24   39   56   75   96octave:38> A .^ 2      % 对A中每一个元素进行平方运算ans =    1    4    9   16   25   36octave:39> V =[1; 2; 3]V =   1   2   3octave:40> 1 ./ V       % 对V中的每个元素求其倒数ans =   1.00000   0.50000   0.33333octave:41> log(V)       % 对V进行对数运算ans =   0.00000   0.69315   1.09861octave:42> exp(V)        % 对V进行e的幂次方运算ans =    2.7183    7.3891   20.0855octave:44> -Vans =  -1  -2  -3octave:45> abs(-V)        % 对-V进行求绝对值运算ans =   1   2   3octave:46> V + ones(length(V), 1)ans =   2   3   4octave:53> aa =    1.00000   15.00000    2.00000    0.50000octave:54> a < 3ans =  1  0  1  1          % a中的元素< 3为真,返回1;反之,返回0    

其中,“.”表示元素位运算。

如何求转置矩阵
octave:47> AA =   1   2   3   4   5   6octave:48> A'ans =   1   3   5   2   4   6
一些有用的函数
octave:49> a = [1 15 2 0.5]         % a为向量a =    1.00000   15.00000    2.00000    0.50000octave:50> [val, ind] = max (a)val =  15                 % a中的最大值ind =  2                  % a中的最大值所在的位置索引octave:52> max(A)              % A每一列的最大值ans =   5   6octave:55> find(a<3)ans =   1   3   4      % 返回a中< 3的元素的位置索引octave:57> A = magic(3)A =   8   1   6   3   5   7   4   9   2octave:58> [r, c] = find(A >= 7)r =                  % 返回A中>= 7的元素所在的行数   1   3   2c =                  % 返回A中>= 7的元素所在的列数   1   2   3octave:59> sum(a)      % 将a中所有的元素加起来求和ans =  18.500octave:60> prod(a)     % 将a中所有元素相乘ans =  15octave:61> floor(a)       % 将a中所有元素向下取整ans =    1   15    2    0octave:63> ceil(a)        % 将a中所有元素向上取整ans =    1   15    2    1octave:64> AA =   8   1   6   3   5   7   4   9   2octave:65> max(A, [], 1)          % A中每一列的最大值ans =   8   9   7octave:66> max(A, [], 2)          % A中每一行的最大值ans =   8   7   9octave:67> max(A)ans =   8   9   7octave:68> max(max(A))            % A中最大值,也可以采用max(A(:))ans =  9octave:69> A = [1 2 3; 4 5 6]A =   1   2   3   4   5   6octave:70> sum(A, 1)         % 对A中每一列求和ans =   5   7   9octave:71> sum(A, 2)         % 对A中的每一行求和ans =    6   15octave:72> A = magic(3)A =   8   1   6   3   5   7   4   9   2octave:73> sum(A, 1)ans =   15   15   15octave:74> sum(A, 2)ans =   15   15   15octave:76> A .* eye(3)ans =   8   0   0   0   5   0   0   0   2octave:77> sum(sum(A .* eye(3)))ans =  15octave:78> flipud(eye(3))ans =Permutation Matrix   0   0   1   0   1   0   1   0   0octave:79> sum(sum(A .* flipud(eye(3))))ans =  15octave:81> AA =   8   1   6   3   5   7   4   9   2octave:82> pinv(A)         % 求出A的伪逆矩阵ans =   0.147222  -0.144444   0.063889  -0.061111   0.022222   0.105556  -0.019444   0.188889  -0.102778

其中,flipud()实现矩阵的上下翻转。

原创粉丝点击