Re: newbie question on functions
- To: mathgroup at smc.vnet.net
- Subject: [mg51763] Re: [mg51750] newbie question on functions
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Mon, 1 Nov 2004 02:52:44 -0500 (EST)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
Functional programming would be simpler. ratio[mat_?MatrixQ, col1_Integer, col2_Integer] := (Log[2,#[[1]]/#[[2]]]& /@ mat[[All,{col1,col2}]]) /; 1<=col1<=Length[mat[[1]]] && 1<=col2 <= Length[mat[[1]]]; intensity[mat_?MatrixQ, col1_Integer, col2_Integer] := (Log[2,#[[1]]*#[[2]]]& /@ mat[[All,{col1,col2}]]) /; 1<=col1<=Length[mat[[1]]] && 1<=col2 <= Length[mat[[1]]]; fmicroarray=Array[fma,{3,19}]; ratio[fmicroarray,18,19] {Log[fma[1, 18]/fma[1, 19]]/Log[2], Log[fma[2, 18]/fma[2, 19]]/Log[2], Log[fma[3, 18]/fma[3, 19]]/Log[2]} intensity[fmicroarray,18,19] {Log[fma[1, 18]*fma[1, 19]]/Log[2], Log[fma[2, 18]*fma[2, 19]]/Log[2], Log[fma[3, 18]*fma[3, 19]]/Log[2]} Bob Hanlon > > From: Todd Allen <genesplicer28 at yahoo.com> To: mathgroup at smc.vnet.net > Date: 2004/10/31 Sun AM 01:17:36 EST > To: mathgroup at smc.vnet.net > Subject: [mg51763] [mg51750] newbie question on functions > > Hi all, > > I have what is probably a nieve question, but it is giving me some difficulty. I am trying to generate a function in which I pass two columns of information from a matrix to this function to perform some calculations. I can successfully pass the data and get the resulting calculation......but the problem is the function returns the results but does not save the results in memory to perform subsequent calculations with. How can I get the function to keep the result? Is there a way to assign the function output to a new variable before mathematica discards the results. Does this behavior have anything to do with the Head of the function being symbolic, rather than say a list?? > > Below is the relevant code: > > SetAttributes[ratio,Listable]; > SetAttributes[intensity,Listable]; > > ratio[cy3_,cy5_]:=Table[Log[2,(cy3/cy5)]]//N; > intensity[cy3_,cy5_]:=Table[Log[2,(cy3*cy5)]]//N; > ratio[Table[fmicroarray[[i,18]],{i,1,Length[fmicroarray]}], > Table[fmicroarray[[i,19]],{i,1,Length[fmicroarray]}]] > > > I appreciate any insight you might have. Thanks. > > Todd > >