Recorrido anti diagonal de la matriz
Contenidos
El resultado es una matriz de 6 por 6. Cuando se especifica un vector de longitud n como entrada, diag devuelve una matriz cuadrada de tamaño n+abs(k).Obtener elementos de la diagonal Abrir script en vivoObtener los elementos de la diagonal principal de una matriz aleatoria de 6 por 6. A = randi(10,6)A = 6×6
ConsejosCapacidades ampliadasGeneración de código C/C++Generar código C y C++ utilizando MATLAB® Coder™.Notas de uso y limitaciones:Generación de código GPUGenerar código CUDA® para GPUs NVIDIA® utilizando GPU Coder™.Notas de uso y limitaciones:Entorno basado en hilosEjecutar código en segundo plano utilizando MATLAB® backgroundPool o acelerar el código con Parallel Computing Toolbox™ ThreadPool.Esta función es totalmente compatible con entornos basados en hilos. Para
más información, consulte Ejecutar funciones de MATLAB en un entorno basado en hilos.Matrices GPU Acelere el código ejecutándolo en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.Esta función es totalmente compatible con las matrices GPU. Para obtener más información, consulte Ejecutar funciones de MATLAB en una GPU (Parallel Computing Toolbox).Arrays distribuidos
Matriz de identidad diagonal posterior
Todo lo que tenías que hacer, era restar 1 al segundo conjunto de bucles for, y seguir restando 1 más desde dentro del bucle. También deberías comprobar que el usuario no introduzca 10 o más como tamaño de la matriz 2d, si no se te estropeará el programa.
No, siento decirte que no estás pensando bien. Para empezar, no tienes un array j. Además eso sería muy engorroso, usar variables separadas para cada columna. Ya has especificado un array llamado v, así que lo usaremos. Todas las matrices deben ser puestas a cero cuando se crean.
Gracias por la solución. Sin embargo, me he dado cuenta de un pequeño error. Si introduzco números negativos, la respuesta da una suma de 0. ¿Cómo puedo resolver este problema? Debería indicar que la suma de las columnas no es posible. Y tal vez usted puede explicar cómo hacer m– y n– funciona en este programa?
Matlab diag
Hola, tengo un problema con mi código.Función I = reverse_diag(n) I = zeros(n); I(1: n+1 : n^2)=1;Quiero que mi código produzca los unos de la diagonal inversa (de arriba a la derecha a abajo a la izquierda). Intenté usar fliplr porque creo que, a partir de ahora, esto es sólo una diagonal de unos desde arriba a la izquierda hasta abajo a la derecha. Sin embargo, eso no funciona. ¿Alguna sugerencia?
Alexandra, tal vez quieras leer este enlace sobre el formato y este otro para poder publicar mejor las preguntas. Pones el código como texto y el texto como formato de código. Lo arreglaré esta vez para ti. Además, podrías dar líneas de asunto más descriptivas – todos tus mensajes son como “¿cómo puedo arreglar mi código?” aunque sean de temas diferentes.No olvides mirar mi respuesta más abajo.
Diagonal de la matriz C
La librería Eigen está dividida en un módulo Core y varios módulos adicionales. Cada módulo tiene un archivo de cabecera correspondiente que debe incluirse para poder utilizar el módulo. Los archivos de cabecera Dense y Eigen se proporcionan para acceder convenientemente a varios módulos a la vez.
Además de los operadores mencionados, Eigen soporta numerosos operadores y funciones de coeficiente. La mayoría de ellos tienen un sentido inequívoco en el mundo de los arrays*. Los siguientes operadores están fácilmente disponibles para arrays, o disponibles a través de .array() para vectores y matrices:
La principal diferencia entre las dos API es que la que se basa en los métodos cwise* devuelve una expresión en el mundo de las matrices, mientras que la segunda (basada en .array()) devuelve una expresión de matriz. Recordemos que .array() no tiene ningún coste, sólo cambia la API disponible y la interpretación de los datos.
También es muy sencillo aplicar cualquier función definida por el usuario foo utilizando DenseBase::unaryExpr junto con std::ptr_fun (c++03, obsoleto o eliminado en las nuevas versiones de C++), std::ref (c++11), o lambdas (c++11): mat1.unaryExpr(std::ptr_fun(foo));