Red de conocimiento de recetas - Recetas caseras - Errores comunes de Matlab

Errores comunes de Matlab

1. El índice del subíndice debe ser un número entero positivo real o un número lógico

Explicación en inglés: el índice del subíndice debe ser un tipo entero positivo o un tipo lógico.

Causa del error: durante el proceso de acceso a matrices (incluidos vectores, matrices bidimensionales y matrices multidimensionales, lo mismo a continuación), el índice de subíndice comienza desde 0 o es un número negativo. Nota: La sintaxis de Matlab estipula que el índice de la matriz comienza desde 1, lo cual es diferente de la convención de lenguajes de programación como C.

Solución: Depura el programa tú mismo y modifica el subíndice de 0 o números negativos.

2. Función o variable "U" indefinida

Explicación china: La función o variable U no está definida.

Causa del error y solución: Es posible que el nombre de la variable se haya ingresado incorrectamente, verifíquelo detenidamente.

3. Los tamaños de las matrices deben ser consistentes

Explicación china: Las dimensiones de las matrices deben ser consistentes.

Motivo del error: Esto se debe a la falta de coincidencia en las dimensiones de los operandos en ambos lados del operador (=+-/*, etc.). ), y la causa típica del error es el mal uso de los operadores matriciales. Matlab usa "." para distinguir operaciones matriciales y operaciones de elementos.

Solución: depure el programa usted mismo para asegurarse de que las dimensiones de los operandos en ambos lados del operador sean consistentes.

4. Las definiciones de funciones no están permitidas en mensajes o scripts.

Las funciones no se pueden definir en la ventana de comandos o en el archivo de script.

Motivo del error: una vez que la función c = myPlus(a, b) se escribe en la ventana de comandos, este error ocurrirá porque esta función solo se puede definir en el archivo m. Para conocer la diferencia entre archivos de script y archivos M, consulte el libro básico de matlab. En resumen:

1) Si se escribe en forma de función, debe escribirse en el archivo M, comenzando con la función (es decir, antes de la declaración de la función, no se pueden incluir otras declaraciones, y todas las declaraciones deben colocarse en la función. Por supuesto, las funciones pueden tener múltiples definiciones y las funciones son paralelas y no pueden anidarse

2) Si se escriben como un script, se pueden escribir en el comando). ventana o en un archivo M, pero ambos Ninguno de ellos puede contener declaraciones de función (es decir, no pueden definir funciones).

Solución: Crear un nuevo archivo M y definir la función.

5. Durante la llamada a "...", a uno o más parámetros de salida no se les asigna un valor.

Explicación en inglés: Durante la llamada a la función..., uno o más variables de salida No se le ha asignado un valor.

Motivo del error: si la función tiene variables de salida, entonces a cada salida se le debe asignar un valor al regresar. Hay dos lugares donde este tipo de error ocurre fácilmente: el valor de retorno de la variable de salida no se considera en algunas declaraciones de juicio condicional (como if).

Durante la iteración del bucle, las dimensiones de algunas variables cambian.

Solución: Depurar el programa y comprobar cuidadosamente el valor de la variable de salida cuando regrese la función. Un mejor enfoque es asignar valores iniciales a las variables utilizadas antes del juicio condicional o la ejecución del bucle.

6.? El índice excede las dimensiones de la matriz.

El índice excede el rango de la matriz.

Motivo del error: al hacer referencia a elementos de la matriz, el valor del índice excede el rango esperado de la matriz.

Solución: Comprobar la dimensionalidad y rango de referencia del array definido.

. En la asignación A(I) = B, el número de elementos en B e I debe ser el mismo

En la asignación A(I) = B, el número de elementos en B e I debe ser lo mismo.

Motivo del error: I y B tienen tamaños y tamaños diferentes. Esto es como "poner cinco frutas en seis cestas" o "poner seis frutas en cinco cestas", lo cual es imposible.

Solución: establezca un punto de interrupción y depurelo usted mismo para ver si los tamaños de I y B son iguales. Si son diferentes, modifíquelos para que sean iguales.