<div dir="ltr"><div class="gmail_default" style=""><div class="gmail_default" style=""><span style="font-family:arial,helvetica,sans-serif">Buenos dias a </span>todos<span style="font-family:arial,helvetica,sans-serif">,</span><br></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">Quisiera extraer algunas entradas de una matrix "m" teniendo en cuenta algunas restricciones.  El siguiente ejemplo ilustra la situacion:</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">## input</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">m <- structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, </font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, </font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">3, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, </font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">0, 0, 0, 5, 5, 5), .Dim = c(10L, 5L))</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">m</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">## output</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">output <- c(1:3, 1:5, 1:2)</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">output</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">Si el numero de filas es r y el numero de columnas k, la idea es construir submatrices de dimension k x k y extraer los elementos diagonales NO ceros.  Ahora, en caso de encontrar un cero, debe desplazarse a la siguiente fila, y construir una nueva matriz k x k.  Graficamente esto seria</font><span style="font-family:arial,helvetica,sans-serif">:</span></div><div class="gmail_default" style=""><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><img src="cid:ii_150af004f6559c33" alt="Inline image 2" width="306" height="304" style="margin-right: 0px;"><br></font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style=""><span style="font-family:arial,helvetica,sans-serif">Observe </span>que<span style="font-family:arial,helvetica,sans-serif"> en este caso</span><span style="font-family:arial,helvetica,sans-serif">, </span><span style="font-family:arial,helvetica,sans-serif">r</span><span style="font-family:arial,helvetica,sans-serif"> = 10 y k = 5.  En la primera submatriz, la diagonal tiene los valores 1, 2, 3, 0, 0, de los cuales SOLO deben seleccionarse 1, 2 y 3 (en lila).  El primer cero se encuentra en la posicion [1, 4], asi que la siguiente submatriz debe construirse COMENZANDO en la fila 4, columna 1.</span><br></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">A partir de esta segunda submatriz se obtienen los elements 1, 2, 3, 4 y 5, que corresponden a su diagonal (en azul celeste).  La posicion del ultimo elemento de esta diagonal es [8, 5], asi que la siguiente submatriz debe comenzar en la fila 9.  A partir de esta submatriz se obtienen los valores 1 y 2 (en naranja).  El resultado final de todo este proceso es el vector</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"># [1] 1 2 3 1 2 3 4 5 1 2</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style=""><span style="font-family:arial,helvetica,sans-serif">Agradezco a todos el tiempo que les tomo leer este mensaje, y por supuesto por cualquier sugerencia que me permita obtener este vector.</span></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">Saludos cordiales,</font></div><div class="gmail_default" style=""><font face="arial, helvetica, sans-serif">Jorge Velez.-</font></div><div style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div></div><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="border-collapse:collapse"><div style="border-collapse:collapse"><div><div style="border-collapse:collapse"><font style="color:rgb(51,51,255);font-weight:bold" color="#500050" face="arial, sans-serif"><span style="font-size:13px;font-weight:normal"></span></font></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div>