[¡Este pequeño artículo es perfecto! 】Un artículo para ver, MATLAB | Arreglos y matrices entrada súper detallada avanzada debe leer

Tabla de contenido

introducir

Primero, la creación y operación de arreglos.

Vía: Crear una matriz unidimensional

Cree una matriz unidimensional a través de la función logspace

Cree una matriz unidimensional a través de la función linspace

En segundo lugar, el funcionamiento de la matriz.

Operaciones relacionales en arreglos

Operaciones lógicas en arreglos

3. Matriz

Construcción de matriz

Subíndice referencias a matrices

tamaño de la matriz

Cuarto, la operación de los elementos de la matriz.

diferencia de matriz

Operaciones Matriciales

análisis matricial

Factorización de matrices


Beneficios: hay un conjunto completo de información de MATLAB al final del artículo.

introducir

Se puede decir que las operaciones de matrices son la base de los cálculos de MATLAB, y las matrices numéricas son los tipos de datos integrados más importantes de MATLAB. La matriz en sí es un arreglo especial.MATLAB pretende ser un laboratorio de matrices, lo que muestra la importancia de los arreglos y las matrices.

Primero, la creación y operación de arreglos.

, Los elementos en la misma fila en la matriz están separados  por comas  o espacios, y ;se usan punto y coma entre diferentes filas.

  1. >> A = [6 5 4 3 2 1]
    
    A = 6 5 4 3 2 1
    
    >> B = [6, 5, 4, 3, 2, 1]
    
    B = 6 5 4 3 2 1
    
    >> C = [6;5;4;3;2;1]
    
    C =
    
        6
    
        5
    
        4
    
        3
    
        2
    
        1
    
    >> D = B' % 转置
    
    D =
    
        6
    
        5
    
        4
    
        3
    
        2
    
        1

Tenga en cuenta que acceder a los elementos de la matriz usa paréntesis () , no lo que usan la mayoría de los lenguajes de programación  []. Además,  el subíndice de matriz de MATLAB comienza desde 1 , y también se permite pasar una lista de subíndices para realizar la consulta y modificación de múltiples elementos. (Esto es consistente con Julia):

 
 
  1. >> A = [6 5 4 3 2 1]
    
    A = 6 5 4 3 2 1
    
    >> A(3) = 0
    
    A = 6 5 0 3 2 1
    
    >> A([1 4]) = [1 1]
    
    A = 1 5 0 1 2 1

Vía: Crear una matriz unidimensional

En MATLAB, puede  : crear una matriz unidimensional  creando una matriz unidimensional X=A:step:B, donde  A es la primera variable para crear una matriz unidimensional y  step es el valor que se incrementa o decrementa cada vez, hasta el valor absoluto de la diferencia entre el último elemento y B es menor o igual al  step valor absoluto. Si no se especifica  step, el valor predeterminado es aumentar en una unidad de longitud.

 
 
  1. >> 2:6
    
    ans = 2 3 4 5 6
    
    >> 2.1:1.5:6
    
    ans = 2.1000 3.6000 5.1000
    
    >> 2.1:6
    
    ans = 2.1000 3.1000 4.1000 5.1000
    
    >> 2.1:-1.5:-6
    
    ans = 2.1000 0.6000 -0.9000 -2.4000 -3.9000 -5.4000

Cree una matriz unidimensional a través de la función logspace

  • y=logspace(a,b): Cree un vector fila  ycon el primer elemento siendo 10^a y el último elemento siendo 10^b, formando una secuencia geométrica con un total de 50 elementos.

  • y=logspace(a,b,n): Esta función crea un vector fila  ycon el primer elemento siendo 10^a y el último elemento siendo 10^b, formando una secuencia geométrica con un total de n elementos .

 
 
  1. >> A = logspace(1, 2, 10)
    
    A = 10.0000 12.9155 16.6810 21.5443 27.8256 35.9381 46.4159 59.9484 77.4264 100.0000

Cree una matriz unidimensional a través de la función linspace

  • y=linspace(a,b): crea un vector fila  ycon a como primer elemento y b como último elemento, formando un vector espaciado linealmente (secuencia aritmética) con un total de 100 elementos.

  • y=logspace(a,b,n): Esta función crea un vector fila  ycon el primer elemento a y el último elemento b formando un vector espaciado linealmente (secuencia aritmética) de n elementos en total .

 
 
  1. >> A = linspace(1, 100)
    
    A =
    
     1 至 21 列
    
        1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
    
     22 至 42 列
    
       22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
    
     43 至 63 列
    
       43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
    
     64 至 84 列
    
       64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
    
     85 至 100 列
    
       85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
    
    >> B = linspace(1, 36, 1)
    
    B =
    
       36

En segundo lugar, el funcionamiento de la matriz.

La operación de una matriz comienza desde el elemento completo de la matriz y realiza una operación en cada elemento de la misma. Las operaciones básicas incluyen suma, resta, multiplicación, división por la izquierda, división por la derecha y exponenciación.

 
 
  1. >> A = [1 5 6 8 9 6]
    
    A = 1 5 6 8 9 6
    
    >> B = [9 85 6 2 4 0]
    
    B = 9 85 6 2 4 0
    
    >> C = [1 1 1 1 1]
    
    C = 1 1 1 1 1
    
    >> D = A + B
    
    D = 10 90 12 10 13 6
    
    >> E = A - B
    
    E = -8 -80 0 6 5 6
    
    >> F = A * 2
    
    F = 2 10 12 16 18 12
    
    >> G = A + 3
    
    G = 4 8 9 11 12 9
    
    >> H = A - G
    
    H = -3 -3 -3 -3 -3 -3

Cabe señalar que la multiplicación de matrices es diferente de la multiplicación de matrices . Requiere  la misma dimensión que la sumaA  ,  B y ​​la operación es la operación de multiplicación de los elementos correspondientes de la matriz, y el resultado del cálculo es una matriz con la   misma  dimensión que la suma. Naturalmente, para la división, se dividen los elementos correspondientes.AB

 
 
  1. >> A = [1 2 3]
    
    A = 1 2 3
    
    >> B = [2 3 4]
    
    B = 2 3 4
    
    >> C = A .* B % 数组的点乘
    
    C = 2 6 12
    
    >> D = A * 3 % 数组与常数的乘法
    
    D = 3 6 9

División de matriz:

 
 
  1. >> A = [1 2 3]
    
    A = 1 2 3
    
    >> B = [2 3 4]
    
    B = 2 3 4
    
    >> A ./ B % 左除
    
    ans = 0.5000 0.6667 0.7500
    
    >> A .\ B % 右除,等价于 B ./ A
    
    ans = 2.0000 1.5000 1.3333
    
    >> B / 2
    
    ans = 1.0000 1.5000 2.0000

Potencias de matriz:

 
 
  1. >> A = [1 2 3 4]
    
    A = 1 2 3 4
    
    >> B = [1 2 3 4]
    
    B = 1 2 3 4
    
    >> C = A .^ B % 数组的乘方
    
    C = 1 4 27 256
    
    >> D = 3 .^ A % 常数与数组的乘方
    
    D = 3 9 27 81

La operación del producto puntodot()  de la matriz se puede realizar a través de la función  , pero la regla de operación requiere que las dimensiones de la matriz   y   sean las mismas, y el formato de llamada es:AB

  • C=dot(A,B)

  • C=dot(A,B,dim)

 
 
  1. >> A = [1 2 3 4]
    
    A = 1 2 3 4
    
    >> B = [1 2 3 4]
    
    B = 1 2 3 4
    
    >> dot(A, B)
    
    ans = 30

Operaciones relacionales en arreglos

MATLAB proporciona 6 operadores relacionales de matrices, a saber,  <(menor que), (menor que  <=o igual a), (mayor que  >),  >=(mayor que o igual a),  ==(igual a),  ~=(no igual a). Reglas de operación:

  • Si el tamaño de los escalares se compara directamente y se establece la relación, se devuelve 1; de lo contrario, se devuelve 0.

  • Cuando el valor de comparación es una matriz con dimensiones iguales, compare los elementos en la misma posición uno por uno y proporcione el resultado de la comparación. El resultado final es una matriz de 0 o 1 elementos con las mismas dimensiones que las matrices comparadas.

 
 
  1. >> A = [1 2 3 4 5]
    
    A = 1 2 3 4 5
    
    >> B = [0 2 3 4 5]
    
    B = 0 2 3 4 5
    
    >> A > B
    
    ans =
    
     1×5 logical 数组
    
      1 0 0 0 0
    
    >> A >= 3
    
    ans =
    
     1×5 logical 数组
    
      0 0 1 1 1

Operaciones lógicas en arreglos

Las matrices en MATLAB proporcionan tres operadores lógicos:  &(y),  |(o) y  ~(no). Verdadero si es un elemento distinto de cero, denotado por 1. Los elementos cero son falsos, representados por 0.

 
 
  1. >> A = [1 2 3 4 5 6]
    
    A = 1 2 3 4 5 6
    
    >> B = [0 1 2 3 4 5]
    
    B = 0 1 2 3 4 5
    
    >> A & B
    
    ans =
    
     1×6 logical 数组
    
      0 1 1 1 1 1
    
    >> A | B
    
    ans =
    
     1×6 logical 数组
    
      1 1 1 1 1 1
    
    >> ~B
    
    ans =
    
     1×6 logical 数组
    
      1 0 0 0 0 0

3. Matriz

Hay muchas diferencias entre matrices y arreglos en MATLAB, como:

  • Matrix es un concepto matemático, mientras que array es un concepto en el campo de la programación informática;

  • Como manifestación de los operadores de transformación o mapeo en matemáticas, las operaciones matriciales tienen reglas matemáticas claras y estrictas . La operación de matriz es una regla definida por el software MATLAB, el propósito es hacer que la gestión de datos sea más conveniente.

La conexión entre los dos es que la matriz existe en forma de matriz. Por tanto, un arreglo unidimensional es equivalente a un vector, y un arreglo bidimensional es equivalente a una matriz, en otras palabras, una matriz es un subconjunto de un arreglo .

Construcción de matriz

Hay dos formas de construir una matriz: una es similar a una matriz de celdas y puede asignar valores directamente a las variables, la otra es usar un comando de matriz especial proporcionado previamente.

nombre de la función función función
ones(n) matriz n×n 1 (los elementos son todos 1)
zeros(n) matriz n×n 0 (los elementos son todos 0)
eye(n) matriz identidad n×n
eye(m,n) matriz identidad m×n
rand(n) Matriz n×n, números aleatorios uniformemente distribuidos entre elementos 0-1
diag(x) Los elementos de la diagonal principal se toman del vector  xy los elementos restantes tienen el valor 0
triu(A) Construya la misma matriz triangular superior que A , los elementos en la diagonal principal son los elementos correspondientes en A, y el resto son 0
tril(A) Construya la misma matriz triangular inferior que A , los elementos en la diagonal principal son los elementos correspondientes en A, y el resto son 0

Existen otros tipos de matrices, como el cubo de Rubik  magic, Pascal  pascal, Vandermonde, etc.

 
 
  1. >> A = ones(3)
    
    A =
    
        1 1 1
    
        1 1 1
    
        1 1 1
    
    >> B = rand(3)
    
    B =
    
       0.8147 0.9134 0.2785
    
       0.9058 0.6324 0.5469
    
       0.1270 0.0975 0.9575
    
    >> C = [1 2 3; 4 5 6; 7 8 9]
    
    C =
    
        1 2 3
    
        4 5 6
    
        7 8 9
    
    >> triu(C)
    
    ans =
    
        1 2 3
    
        0 5 6
    
        0 0 9

Subíndice referencias a matrices

El índice de elementos de matriz bidimensional ordinarios se divide en índice de subíndice doble e índice de subíndice simple. El índice índice de doble subíndice corresponde a la posición de fila y columna del elemento en la matriz a través de un arreglo binario, por ejemplo: A(2, 3) indica el elemento en la segunda fila y tercera columna en la matriz A. La forma de índice de subíndice único es adoptar el principio de  prioridad de elemento de columna  y reorganizar la matriz de m filas y  A (5) representa el elemento de la tercera fila y la segunda columna.n

expresión Función
A(1) Reorganice la matriz bidimensional A en una matriz unidimensional y devuelva el primer elemento de la matriz
A(:,j) Devuelve el vector columna j en la matriz bidimensional A
A(i,:) Devuelve el i-ésimo vector de fila en la matriz bidimensional A
A(:,j:k) Devuelve la submatriz compuesta por vectores columna de la columna j a la columna k en la matriz bidimensional A
A(i:k,:) Devuelve la submatriz que consta de vectores fila desde la i-ésima fila hasta la k-ésima fila en la matriz bidimensional A
A(:) Combinar cada columna en la matriz A en un vector de columna larga

Prueba de estructura matricial:

nombre Función
isempty(A) Comprobar si la matriz está vacía
isscalar(A) Comprueba si la matriz es una matriz escalar con un elemento
isvector(A) Vector 1D que detecta si la matriz tiene solo una fila o una columna de elementos
issparse(A) Comprobar si una matriz es una matriz dispersa
 
 
  1. >> A = magic(3)
    
    A =
    
        8 1 6
    
        3 5 7
    
        4 9 2
    
    >> A(5)
    
    ans = 5
    
    >> B = [1]
    
    B = 1
    
    >> isempty(B)
    
    ans =
    
     logical
    
      0
    
    >> isscalar(B)
    
    ans =
    
     logical
    
      1

tamaño de la matriz

El tamaño de la matriz suele incluir los siguientes aspectos: el número de dimensiones, la longitud de cada dimensión y el número de elementos de la matriz. Para ello, MATLAB proporciona cuatro funciones, que se utilizan para obtener información sobre la forma de la matriz.

formato de llamada Función
n=ndims(X) Obtener el número de matrices
[m,n]=size(X) Obtener la longitud de la matriz en cada dimensión.
n=length(X) Obtener la longitud de la dimensión más larga de una matriz
n=numel(X) Obtener el número de elementos de la matriz.
 
 
  1. >> A = eye(5, 3)
    
    A =
    
        1 0 0
    
        0 1 0
    
        0 0 1
    
        0 0 0
    
        0 0 0
    
    >> ndims(A)
    
    ans = 2
    
    >> length(A)
    
    ans = 5
    
    >> numel(A)
    
    ans = 15

Una de las claves para optimizar el código de MATLAB es comprender el uso de memoria de las matrices . Puede usar para  whos ver toda la información de la variable especificada en el espacio de trabajo actual, incluido el nombre de la variable, el tamaño de la matriz, el uso de la memoria, el tipo de datos, etc.

 
 
  1. >> m = rand(2)
    
    m =
    
       0.9649 0.9706
    
       0.1576 0.9572
    
    >> whos m
    
     Name Size Bytes Class Attributes
    
     m 2x2 32 double

Cuarto, la operación de los elementos de la matriz.

Para usar operaciones con matrices, debe seguir la definición matemática de una matriz. Por ejemplo, la premisa de las operaciones de suma y resta de matrices es que dos o más matrices que participan en la operación deben tener el mismo número de filas y columnas .

Satisfecho: ley conmutativa A+B=B+A, ley asociativa A+(B+C)=(A+B)+C, existencia del elemento cero A+0=0+A=A, existencia del elemento negativo A+(- A) =(-A)+A

Las operaciones de multiplicación de matrices incluyen la multiplicación de números y matrices, y la multiplicación de matrices. La multiplicación de matrices debe satisfacer el hecho de que el número de columnas de la matriz multiplicada es igual al número de filas de la matriz multiplicada . Además, la multiplicación entre matrices no sigue la ley conmutativa , sino que satisface la siguiente ley de operación:

  • Ley asociativa: (A×B)×C=A×(B×C)

  • Ley distributiva izquierda: A×(B+C)=A×B+A×C

  • Ley distributiva derecha: (B+C)×A=B×A+C×A

  • Existencia de matriz identidad: E×A=A, A×E=A

La división de matrices es la operación inversa de la multiplicación, dividida en división por la izquierda y división por la derecha. Utilice símbolos  \ y  / representaciones de operadores. Para las matrices bidimensionales generales  A  y  B , al realizar la operación A\B ,  se requiere que  el número de filas de  A  sea igual al número de filas de B ; al realizar la operación A/B , el número de columnas de A y Se requiere que B sea igual.

 
 
  1. >> A = [1 2; 1 3];
    
    >> B = [1 0; 1 2];
    
    >> C = A / B
    
    C =
    
            0 1.0000
    
      -0.5000 1.5000
    
    >> D = A\B
    
    D =
    
        1 -4
    
        0 2
    
    >> C * B
    
    ans =
    
        1 2
    
        1 3
    
    >> A * D
    
    ans =
    
        1 0
    
        1 2

Cuando la matriz es una matriz cuadrada, se puede realizar la operación de potencia de la matriz, y MATLAB la usa  ^ para representar la operación de potencia:

 
 
  1. >> A = magic(3)
    
    A =
    
        8 1 6
    
        3 5 7
    
        4 9 2
    
    >> A2 = A^2
    
    A2 =
    
       91 67 67
    
       67 91 67
    
       67 67 91

diferencia de matriz

diff() La función es calcular la diferencia de la matriz. En resumen, la diferencia entre la fila (columna) anterior y la fila (columna) siguiente en la matriz se organiza en la posición correspondiente de la fila (columna) anterior.

  • Y=diff(X,n): Calcula la diferencia de orden n de elementos en cada columna de la matriz.

  • Y=diff(X,n,dim)dim : Calcula la diferencia de elementos de  una matriz en una dimensión dada  n . En ese momento dim=1 se calcula la diferencia de los elementos de cada columna de la matriz. En ese momento dim=2 se calcula la diferencia de los elementos de cada fila de la matriz.

 
 
  1. >> A = magic(3)
    
    A =
    
        8 1 6
    
        3 5 7
    
        4 9 2
    
    >> B = diff(A)
    
    B =
    
       -5 4 1
    
        1 4 -5
    
    >> C = diff(A, 2)
    
    C =
    
        6 0 -6
    
    >> D = diff(A, 1, 2)
    
    D =
    
       -7 5
    
        2 2
    
        5 -7

Operaciones Matriciales

Las operaciones con matrices son una parte extremadamente importante del álgebra lineal, incluido el análisis de matrices, la resolución de valores propios y los valores singulares.

análisis matricial

Las funciones de análisis de matrices proporcionadas por MATLAB son las siguientes:

Nombre de la función describir
norm Encuentra la norma de una matriz o vector
normest Estime la 2da norma de la matriz
rank Rango de la matriz
det determinante de matriz
trace La traza de la matriz, es decir, la suma de los elementos de la diagonal
null 0 espacio
orth espacio de ortogonalización
rref Forma escalonada de fila reducida
subspace encontrar el ángulo de dos espacios de matriz
 
 
  1. >> norm(1:6, 2) % 2阶范数
    
    ans = 9.5394
    
    >> normest(1:6)
    
    ans = 9.5394

Cuando la dimensión de la matriz es relativamente grande, tomará mucho tiempo calcular la norma, y ​​cuando un valor de norma aproximado cumple con los requisitos, puede considerar usar una función para estimar el valor de norma de segundo orden  normset() .

 
 
  1. >> A = [1 2 3; 3 4 5; 7 8 9];
    
    >> B = magic(3);
    
    >> r1 = rank(A)
    
    r1 = 2
    
    >> r2 = rank(B)
    
    r2 = 3
    
    >> det(B)
    
    ans = -360
    
    >> trace(B)
    
    ans = 15
    
    >> Z = null(A)
    
    Z =
    
       0.4082
    
      -0.8165
    
       0.4082

Factorización de matrices

La descomposición de matrices consiste en descomponer una matriz en varias formas "simples" de multiplicación de matrices. La descomposición de matrices es muy importante tanto en teoría como en aplicaciones de ingeniería.

nombre describir
chol Descomposición de Cholesky
choline Descomposición incompleta de Cholesky de matriz dispersa
lu Descomposición de matriz LU
luinc Factorización LU incompleta de matrices dispersas
qr Descomposición por triangulación ortogonal
svd valor singular de descomposición
gsvd Descomposición general de valores singulares
schur Descomposición de Schur

Show Charging Jun te traerá la última y más completa interpretación lo antes posible, no olvides la triple ola.  

                                                   

 

Preste atención a la cuenta oficial: Barra de carga de recursos
Responder: Chat GPT
Carga que Jun le envió: disfrute usando la versión china de forma gratuita
Haga clic en la tarjeta pequeña para seguir, responda: TI

Tengo toda la información que quiero. 

Supongo que te gusta

Origin blog.csdn.net/CDB3399/article/details/131225316
Recomendado
Clasificación