{"id":498,"date":"2014-04-01T21:31:17","date_gmt":"2014-04-01T20:31:17","guid":{"rendered":"http:\/\/descartesjs.org\/documentacion\/?p=498"},"modified":"2021-08-08T12:41:23","modified_gmt":"2021-08-08T11:41:23","slug":"matriz","status":"publish","type":"post","link":"https:\/\/reddescartes.org\/documentacion\/matriz\/","title":{"rendered":"Matriz"},"content":{"rendered":"<p>Una matriz es un arreglo bidimensional de constantes. Si <strong>M<\/strong> es una matriz entonces <strong>M<\/strong>[i,j] es el elemento que est\u00e1 en la<strong> columna i+1<\/strong> y en la <strong>fila j+1<\/strong>. Observe que la convenci\u00f3n adoptada en Descartes no es la usual en la literatura matem\u00e1tica, es decir, el primer sub\u00edndice referencia al n\u00famero de columna y el segundo al n\u00famero de fila, lo que equivale a que Descartes trabaja internamente con la matriz traspuesta. Tambi\u00e9n los sub\u00edndices se numeran desde 0, por tanto\u00a0el n\u00famero de fila y columna es uno m\u00e1s del que indica el sub\u00edndice respectivo.<\/p>\n<p><span style=\"color: #000000;\">El panel de configuraci\u00f3n de una matriz se muestra en la siguiente figura.<\/span><\/p>\n<div id=\"attachment_2509\" style=\"width: 860px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/matriz2x31.jpg\"><img aria-describedby=\"caption-attachment-2509\" class=\"wp-image-2509 size-full\" src=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/matriz2x31.jpg\" alt=\"Matriz con 2 filas y 3 columnas\" width=\"850\" height=\"540\" srcset=\"https:\/\/reddescartes.org\/documentacion\/wp-content\/uploads\/2014\/04\/matriz2x31.jpg 850w, https:\/\/reddescartes.org\/documentacion\/wp-content\/uploads\/2014\/04\/matriz2x31-300x190.jpg 300w\" sizes=\"(max-width: 850px) 100vw, 850px\" \/><\/a><p id=\"caption-attachment-2509\" class=\"wp-caption-text\">Matriz con 2 filas y 3 columnas<\/p><\/div>\n<p><span style=\"color: #000000;\">El caso ah\u00ed reflejado se corresponde con una matriz de 3 columnas y 2 filas<br \/>\n<\/span><\/p>\n<div id=\"attachment_2514\" style=\"width: 141px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/mat2x32.jpg\"><img aria-describedby=\"caption-attachment-2514\" class=\"wp-image-2514 size-full\" src=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/mat2x32.jpg\" alt=\"matriz con la que se desea trabajar\" width=\"131\" height=\"65\" \/><\/a><p id=\"caption-attachment-2514\" class=\"wp-caption-text\">matriz con la que se desea trabajar<\/p><\/div>\n<p>cuya identificaci\u00f3n interna es <strong>mat<\/strong>. Y seg\u00fan el criterio indicado el elemento mat[1,0]=2 es el que est\u00e1 ubicado en columna 2 (1+1=2) y en la fila 1 (0+1=1) , es decir, internamente Descartes guarda la matriz traspuesta de la anterior:<\/p>\n<div id=\"attachment_2512\" style=\"width: 168px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/mat3x21.jpg\"><img aria-describedby=\"caption-attachment-2512\" class=\"wp-image-2512 size-full\" src=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/mat3x21.jpg\" alt=\"Matriz guardada por Descartes\" width=\"158\" height=\"98\" \/><\/a><p id=\"caption-attachment-2512\" class=\"wp-caption-text\">Matriz guardada por Descartes seg\u00fan la notaci\u00f3n usual<\/p><\/div>\n<p align=\"left\">Los campos espec\u00edficos para configurar una matriz son los siguientes:<\/p>\n<ul>\n<li>Identificador de la matriz a trav\u00e9s del cual se puede referenciar.<\/li>\n<li><strong>evaluar\u00a0<\/strong>que puede tomar\u00a0los\u00a0valores \u00abuna-sola-vez\u00bb o \u00absiempre\u00bb y hace que el vector tome los valores indicados en el campo de texto de inicializaci\u00f3n s\u00f3lo cuando se inicie la escena o cada vez que haya una interacci\u00f3n con la misma. Este par\u00e1metro ha quedado restringido a \u00abuna sola vez\u00bb en la versi\u00f3n 5, la actualizaci\u00f3n \u00abuna vez\u00bb cuando los valores se realizan mediante variables o cuando se desea \u00absiempre\u00bb se realiza repectivamente usando los algoritmos\u00a0<a href=\"https:\/\/descartesjs.org\/documentacion\/?p=1245\">Inicio<\/a>\u00a0y\u00a0<a href=\"https:\/\/descartesjs.org\/documentacion\/?p=507\">C\u00e1lculos<\/a>.<\/li>\n<li><strong>columnas<\/strong>. Es el n\u00famero de columnas de la matriz.<\/li>\n<li><strong>filas<\/strong>. Es el n\u00famero de filas de la matriz<\/li>\n<li style=\"text-align: left;\"><strong>\u00c1rea de texto<\/strong>. Es un campo de texto donde pueden escribirse asignaciones a los valores de la matriz, separadas por saltos de l\u00ednea o por ;<br \/>\nPor ejemplo, en la imagen anterior el identificador de la matriz es <strong>mat<\/strong> y tiene 3 columnas y 2 filas y sus elementos se definen como:<br \/>\nmat[0,0]=1<br \/>\nmat[1,0]=2<br \/>\nmat[2,0]=3<br \/>\nmat[0,1]=0<br \/>\nmat[1,1]=-1<br \/>\nmat[2,1]=1<\/li>\n<li><strong>archivo<\/strong>. Este par\u00e1metro <strong>no est\u00e1 operativo<\/strong> para matrices. Para una carga din\u00e1mica de una matriz a partir de un fichero es necesario utilizar funciones seg\u00fan se describe en el art\u00edculo<a href=\"https:\/\/descartesjs.org\/documentacion\/?p=2520\"> ficheros y matrices<\/a>.<\/li>\n<\/ul>\n<p>El \u00e1rea de texto que aparece en el panel de configuraci\u00f3n de una matriz sirve para asignar valores a (o inicializar ) los elementos de la matriz.\u00a0 El contenido del \u00e1rea de texto que se ofrece por defecto contempla una asignaci\u00f3n a todos elementos del valor 0, no obstante los elementos no inicializados de un vector tienen por defecto ese valor.<\/p>\n<p>Para inicializar una matriz no es necesario utilizar el \u00e1rea de texto, tambi\u00e9n se puede utilizar un algoritmo descrito en una funci\u00f3n algor\u00edtmica o bien mediante un fichero. Estas dos \u00faltimas formas son las m\u00e1s aconsejables cuando la matriz tiene muchos elementos.\u00a0En la siguiente escena se muestra un ejemplo de estas posibilidades.<\/p>\n<p style=\"text-align: left;\">\n<!-- iframe plugin v.4.5 wordpress.org\/plugins\/iframe\/ -->\n<iframe src=\"https:\/\/descartesjs.org\/repositorio\/EjemMatriz_JS\/\" width=\"650\" height=\"260\" scrolling=\"yes\" class=\"iframe-class\" frameborder=\"0\"><\/iframe>\n<\/p>\n<p>Si se desea ver c\u00f3mo est\u00e1 realizado el objeto anterior puede descargarse desde\u00a0<a href=\"https:\/\/descartesjs.org\/repositorio\/EjemMatriz_JS.zip\">aqu\u00ed<\/a>\u00a0.<\/p>\n<p>En la escena anterior la opci\u00f3n de men\u00fa etiquetada como \u201cGenerar\u201d permite asignar a cada elemento de una matriz denominada matr1 un valor aleatorio mediante una funci\u00f3n que est\u00e1 reflejada en la siguiente imagen. En ella un ciclo que se ejecuta desde 0 hasta el n\u00famero de columnas de dicha matriz (3 en este caso) asigna a cada uno de los elementos de cada fila (matr1[term,0] y matr1[term,1]) un n\u00famero aleatorio en el intervalo [0, 20)<\/p>\n<div id=\"attachment_2519\" style=\"width: 610px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/genera_matriz.jpg\"><img aria-describedby=\"caption-attachment-2519\" class=\"size-full wp-image-2519\" src=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/genera_matriz.jpg\" alt=\"C\u00f3digo para inicializar una matriz con valores aleatorios\" width=\"600\" height=\"381\" srcset=\"https:\/\/reddescartes.org\/documentacion\/wp-content\/uploads\/2014\/04\/genera_matriz.jpg 600w, https:\/\/reddescartes.org\/documentacion\/wp-content\/uploads\/2014\/04\/genera_matriz-300x190.jpg 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-2519\" class=\"wp-caption-text\">C\u00f3digo para inicializar una matriz con valores aleatorios mediante una funci\u00f3n algor\u00edtmica<\/p><\/div>\n<p>En el art\u00edculo\u00a0<a href=\"https:\/\/descartesjs.org\/documentacion\/?p=2520\">ficheros y matrices<\/a>\u00a0puede aprenderse c\u00f3mo asignar valores a una matriz mediante el uso de ficheros y en \u00e9l se describe c\u00f3mo en la escena anterior se realiza esa asignaci\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una matriz es un arreglo bidimensional de constantes. Si M es una matriz entonces M[i,j] es el elemento que est\u00e1 en la columna i+1 y en la fila j+1. Observe que la convenci\u00f3n adoptada en Descartes no es la usual en la literatura matem\u00e1tica, es decir, el primer sub\u00edndice referencia al n\u00famero de columna y el segundo al n\u00famero de fila, lo que equivale a que Descartes trabaja internamente con la matriz traspuesta. Tambi\u00e9n los sub\u00edndices se numeran desde 0, por tanto\u00a0el n\u00famero de fila y columna es uno m\u00e1s del que indica el sub\u00edndice respectivo. El panel de configuraci\u00f3n<\/p>\n<a class=\"more-link\" rel=\"nofollow\" href=\"https:\/\/reddescartes.org\/documentacion\/matriz\/\">[Leer m\u00e1s...]<\/a>","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[36],"tags":[48,51],"_links":{"self":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/498"}],"collection":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/comments?post=498"}],"version-history":[{"count":23,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/498\/revisions"}],"predecessor-version":[{"id":3543,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/498\/revisions\/3543"}],"wp:attachment":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/media?parent=498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/categories?post=498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/tags?post=498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}