{smcl} {* 25aug2008}{...} {cmd:help mata mz_trimrows()} {hline} {title:Title} {p 4 14 2} {bf:mz_trimrows() -- Trims rows from the top and/or bottom of a matrix} {title:Syntax} {p 4 23 2} {it:transmorphic matrix} {cmd:mz_trimrows(}{it:x}{cmd:,} {it:p}{cmd:,} {it:d}{cmd:)} {pstd} where {p 12 16 2} {it:x}: {it:transmorphic matrix} from which rows are to be trimmed {p 12 16 2} {it:p}: {it:real scalar} containing the number of rows which must be removed from the top of matrix {it:x} {p 12 16 2} {it:d}: {it:real scalar} containing the number of rows which must be removed from the bottom of matrix {it:x} {title:Description} {p 4 4 2} {cmd:mz_trimrows()} returns a matrix which is the matrix {it:x} with its top and/or bottom rows removed. If {it:p} = {it:d} = {it:0}, then no rows will be removed from the matrix. {title:Remarks} {pstd} Examples: {com}: x {res} {txt}1 2 3 4 {c TLC}{hline 17}{c TRC} 1 {c |} {res}1 3 5 6{txt} {c |} 2 {c |} {res}4 3 2 1{txt} {c |} 3 {c |} {res}7 5 3 2{txt} {c |} 4 {c |} {res}8 9 0 1{txt} {c |} 5 {c |} {res}4 6 8 9{txt} {c |} 6 {c |} {res}3 2 6 7{txt} {c |} 7 {c |} {res}1 4 5 7{txt} {c |} 8 {c |} {res}7 2 4 6{txt} {c |} 9 {c |} {res}1 4 0 3{txt} {c |} 10{c |} {res}1 4 6 7{txt} {c |} {c BLC}{hline 17}{c BRC} {com}: mz_trimrows(x, 2, 3) {res} {txt}1 2 3 4 {c TLC}{hline 17}{c TRC} 1 {c |} {res}7 5 3 2{txt} {c |} 2 {c |} {res}8 9 0 1{txt} {c |} 3 {c |} {res}4 6 8 9{txt} {c |} 4 {c |} {res}3 2 6 7{txt} {c |} 5 {c |} {res}1 4 5 7{txt} {c |} {c BLC}{hline 17}{c BRC} {txt} To remove only the first two rows of {it:x}, we set {com}: mz_trimrows(x, 2, 0) {res} {txt}1 2 3 4 {c TLC}{hline 17}{c TRC} 1 {c |} {res}7 5 3 2{txt} {c |} 2 {c |} {res}8 9 0 1{txt} {c |} 3 {c |} {res}4 6 8 9{txt} {c |} 4 {c |} {res}3 2 6 7{txt} {c |} 5 {c |} {res}1 4 5 7{txt} {c |} 6 {c |} {res}7 2 4 6{txt} {c |} 7 {c |} {res}1 4 0 3{txt} {c |} 8 {c |} {res}1 4 6 7{txt} {c |} {c BLC}{hline 17}{c BRC} {txt} To remove only the last three rows of {it:x}, we set {com}: mz_trimrows(x, 0, 3) {res} {txt}1 2 3 4 {c TLC}{hline 17}{c TRC} 1 {c |} {res}1 3 5 6{txt} {c |} 2 {c |} {res}4 3 2 1{txt} {c |} 3 {c |} {res}7 5 3 2{txt} {c |} 4 {c |} {res}8 9 0 1{txt} {c |} 5 {c |} {res}4 6 8 9{txt} {c |} 6 {c |} {res}3 2 6 7{txt} {c |} 7 {c |} {res}1 4 5 7{txt} {c |} {c BLC}{hline 17}{c BRC} {txt} If we have a string matrix {com}: A {res} {txt}1 2 3 4 {c TLC}{hline 25}{c TRC} 1 {c |} {res}a11 a12 a13 a14{txt} {c |} 2 {c |} {res}a21 a22 a23 a24{txt} {c |} 3 {c |} {res}a31 a32 a33 a34{txt} {c |} 4 {c |} {res}a41 a42 a43 a44{txt} {c |} 5 {c |} {res}a51 a52 a53 a54{txt} {c |} {c BLC}{hline 25}{c BRC} {txt} we get {com}: mz_trimrows(A, 1, 2) {res} {txt}1 2 3 4 {c TLC}{hline 25}{c TRC} 1 {c |} {res}a21 a22 a23 a24{txt} {c |} 2 {c |} {res}a31 a32 a33 a34{txt} {c |} {c BLC}{hline 25}{c BRC} {title:Conformability} {cmd:mz_trimrows(}{it:x}{cmd:,} {it:p}{cmd:,} {it:d}{cmd:)} {it:x}: {it:n x c} {it:p}: {it:1 x 1} {it:d}: {it:1 x 1} {it:result}: {it:q x c}, {it:q <= n} {title:Diagnostics} {p 4 4 2} {cmd:mz_trimrows()} aborts with error if {it:p} or {it:d} is negative. Likewise if {it:p} or {it:d} is equal to the number of rows of {it:x}. {title:Source code} {p 4 4 2} {help ltimbimata_source##mz_trimrows:mz_trimrows.mata} {title:Author} {p 4 4 2} Diallo Ibrahima Amadou, {browse "mailto:zavren@gmail.com":zavren@gmail.com} {title:Also see} {p 4 13 2} Online: help for {bf:{help mf_select:[M-5] select()}}, {bf:{help ltimbimata}} {p_end}