Re: matrix
- To: mathgroup at smc.vnet.net
- Subject: [mg28412] Re: matrix
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Mon, 16 Apr 2001 23:54:16 -0400 (EDT)
- References: <9bb759$92p@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Some timings, and a different and a new, faster way mat1=Block[{mat = Take[IdentityMatrix[4000], All, 1220]}, mat[[All, All]] = 0; mat[[Range[216, 220], All]] = 1; mat];//Timing (*Allan Hayes1*) mat2=PadRight[Table[1,{5},{1220}],{4000,1220},0,{215,0}];//Timing (*Carl Woll1*) mat3=PadRight[Table[1,{5},{1220}],{4000,1220},0,{215,0}];//Timing (*Carl Woll2*) mat4=PadRight[Table[1,{5},{1220}],{4000}, Table[0,{1},{1220}],{215}];//Timing (*Allan Hayes2*) mat1===mat2===mat3===mat4 {20.44 Second,Null} {3.29 Second,Null} {2.25 Second,Null} {0.11 Second,Null} True And the direct approach from poupoulinou: mat5=Block[{m0 = Table[0,{1220}], m1 = Table[1,{1220}]}, Table[If[216 <= i <= 220, m1, m0],{i,1,4000}] ];//Timing {3.73 Second,Null} mat1===mat5 True -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 "Su Su Win" <susuwin at post.kek.jp> wrote in message news:9bb759$92p at smc.vnet.net... > Hello, > > How can I make a matrix (4000x1220) with zeros except that all the values at > 216th to 220th rows are ones. > Thank you very much in advance. > Regards, Win > > > >