📜  如何在 Octave 中执行计算操作?

📅  最后修改于: 2022-05-13 01:55:45.107000             🧑  作者: Mango

如何在 Octave 中执行计算操作?

在本文中,我们将了解如何在 Octave 中执行一些基本的计算操作。以下是可以在 Octave 中执行的各种计算操作的列表,以便在各种机器学习算法中使用它们:

1. 矩阵运算:矩阵是 Octave 的核心组件。让我们看看 Octave 中的一些矩阵运算:

% declaring 3x3 matrices
M1 = [1 2 3; 4 5 6; 7 8 9];
M2 = [11 22 33; 44 55 66; 77 88 99];
  
% declaring a 2x2 matrix
M3 = [1 2; 1 2];
  
% matrix multiplication
mat_mul = M1 * M2
  
% element wise multiplication of matrices
ele_mul = M1 .* M2
  
% element wise cube of a matrix
cube = M1 .^ 3
  
% element wise reciprocal
reciprocal = 1 ./ M1
  
% element wise logarithmic
logarithmic = log(M3) 
  
% element wise exponent
exponent = exp(M3)
  
% fetching the element wise absolute value
absolute = abs([-1 -2; -3 -4; -5 -6])
  
% initializing a vector
vec = [1 2 3 4 5];
  
% element wise multiply with -1
additive_inverse = -vec % similar to vec * -1
  
% adding 1 to every element
add_1 = vec + 1 
  
% transpose of a matrix
transpose = M1'
  
% getting the maximum value
maximum = max(vec)
  
% getting the maximum value with index
[value, index] = max(vec)
  
% getting column wise maximum value
col_max = max(M1)
  
% index of elements that satisfies a condition
index = find(vec > 3)

输出 :

mat_mul =

    330    396    462
    726    891   1056
   1122   1386   1650

ele_mul =

    11    44    99
   176   275   396
   539   704   891

cube =

     1     8    27
    64   125   216
   343   512   729

reciprocal =

   1.00000   0.50000   0.33333
   0.25000   0.20000   0.16667
   0.14286   0.12500   0.11111

logarithmic =

   0.00000   0.69315
   0.00000   0.69315

exponent =

   2.7183   7.3891
   2.7183   7.3891

absolute =

   1   2
   3   4
   5   6

additive_inverse =

  -1  -2  -3  -4  -5

add_1 =

   2   3   4   5   6

transpose =

   1   4   7
   2   5   8
   3   6   9

maximum =  5
value =  5
index =  5
col_max =

   7   8   9

index =

   4   5

2. 魔法矩阵:魔法矩阵是一个矩阵,其中所有行、列和对角线之和都相同。我们将使用magic()函数来生成一个魔法矩阵。

% generating a 4x4 magic matrix
magic_mat = magic(4)
  
% fetching 2 column vectors corresponding 
% to row and column each which combination
% shows you the element which are greater then 10 in 
% our example such indexes are (1, 1), (2, 2), (4, 2) etc.
[row, column] = find(magic_mat >= 10) 
  
% sum of all elements of the matrix
sum = sum(sum(magic_mat))
  
% product of all elements of the matrix
product = prod(prod(magic_mat))

输出:

magic_mat =

   16    2    3   13
    5   11   10    8
    9    7    6   12
    4   14   15    1

row =

   1
   2
   4
   2
   4
   1
   3

column =

   1
   2
   2
   3
   3
   4
   4

sum = 136
product = 20922789888000

3. 更多矩阵和向量函数和运算:

% declaring the vector
vec = [1 2 3 4 5];
  
% rounded down value of each element
floor_val = floor(vec)
  
% rounded up value of each element
ceil_val = ceil(vec)
  
% element wise max of 2 matrices
maximum = max(rand(2), rand(2))
  
% generate a magic square
magic_mat = magic(3)
  
% declaring a matrix
A = [10 22 34; 45 56 67; 74 81 90];
  
% generate a column vector of elements of A
col_A = A(:)
  
% overall maximum of a matrix, method 1
max_A = max(max(A))
  
% overall maximum of a matrix, method 2
max_A = max(A(:))
  
% column wise sum of a matrix
sum_col = sum(magic_mat, 1)
  
% row wise sum of a matrix
sum_row = sum(magic_mat, 2)
  
% sum of diagonal elements
sum_diag = sum(sum(magic_mat .* eye(3)))
  
% flipping the identity matrix
flipud(eye(3))
  
% inverse of matrix with pinv() function
inverse = pinv(magic_mat)

输出 :

floor_val =

   1   2   3   4   5

ceil_val =

   1   2   3   4   5

maximum =

   0.72570   0.34334
   0.81113   0.68197

magic_mat =

   8   1   6
   3   5   7
   4   9   2

col_A =

   10
   45
   74
   22
   56
   81
   34
   67
   90

max_A =  90
max_A =  90
sum_col =

   15   15   15

sum_row =

   15
   15
   15

sum_diag =  15

ans =

Permutation Matrix

   0   0   1
   0   1   0
   1   0   0

inverse =

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