[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Tirthankar Chakravarty <tirthankar.chakravarty@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: re matrix substitution |

Date |
Sat, 22 Aug 2009 16:06:55 +0100 |

I don't fully understand what you are trying to do. Why are you passing `touse' as an argument to -mysubsi-? Here is a slightly amended version of -mysusbsi-: ************************************** /* matrix substitution */ clear mata capture mata mata drop mysubsi() mata real matrix mysubsi(real matrix A, real scalar thresh) { real matrix C C = J(rows(A), cols(A), 0) for(i=1; i<=rows(A); i++) { for(j=1; j<=cols(A); j++) { if (A[i,j]<= thresh) C[i,j] =0 else C[i,j] = A[i,j] } } return(C) } mata mosave mysubsi(), dir(e:\stata) replace // an example A = (1, 2, 3\ 9, 8, 1) mysubsi(A, 3) end ************************************** T On Sat, Aug 22, 2009 at 10:52 AM, Marwan Elkhoury<elkhoury.marwan@gmail.com> wrote: > dear statalist, > > sorry to bother you with this minor pblm but I'm not familiar with the > stata mata environment , more familiar with the matlab matrix > environment. anyway, I wish to substitute some matrix factor loadings > which are negative or small to zero and keep the others identical. > Now, I've written naively some piece of codes to do that and it's not > working, either because I'm not writing the pgm correctly or not > saving it correctly in the right place or not calling the function > correctly; so the codes are for stata 10 version and are the following: > > /* matrix substitution */ > > program mysubsi > version 10 > syntax varname [if] [in] > marksample touse > mata: mysubsi(string st_matrix("A"), "`touse'") > display as txt " C = " as res r(C) > end > > > capture mata mata drop mysubsi() > mata > real matrix mysubsi(real matrix A, real scalar thresh) > { > real scalar r, c > real matrix C > r=rows(A) > c=cols(A) > for(i=1;i<=r;i++) { > for(j=1;j<=c;j++) { > if (A[i,j]< thresh) { > C[i,j] =0 > } > else { > C[i,j] = A[i,j] > } > } > } > return(C) > } > > mata mosave mysubsi(), dir(c:\ado\personal\m) replace > end > > /// end of pgm > > then I try to call the function, writing: > mata: mysubsi("A", "`touse'") > mata: mysubsi("entering the real matrix function which I want to > perform change upon", thresh number) > > I'm surely missing on something and any help would be greatly > appreciated. > > sincerely yours, > > Marwan > > > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/statalist/faq > * http://www.ats.ucla.edu/stat/stata/ > -- To every ω-consistent recursive class κ of formulae there correspond recursive class signs r, such that neither v Gen r nor Neg(v Gen r) belongs to Flg(κ) (where v is the free variable of r). * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**References**:**st: re matrix substitution***From:*Marwan Elkhoury <elkhoury.marwan@gmail.com>

- Prev by Date:
**st: stcurve and competing hazards model** - Next by Date:
**Re: st: re matrix substitution** - Previous by thread:
**st: re matrix substitution** - Next by thread:
**Re: st: re matrix substitution** - Index(es):

© Copyright 1996–2017 StataCorp LLC | Terms of use | Privacy | Contact us | What's new | Site index |