Re: Initialize a matrix in mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg66767] Re: Initialize a matrix in mathematica
- From: Bill Rowe <readnewsciv at earthlink.net>
- Date: Mon, 29 May 2006 06:06:36 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On 5/28/06 at 6:08 AM, ashesh.cb at gmail.com (ashesh) wrote: >Have programmed in another system until now and am trying to shift >to Mathematica and facing some diffciulties >I would like to create a matrix, say a[ndiv] and would like to >initilize all the value to i^2 (or any other value). The size of the >matrix is not fixed. >The code I tried to use is: >ndiv = 5; a = {}; For[i=1, i<=ndiv, i++, a[[i]] = i*i; >]; >a >This is producing the following error: partw: Part 1 of {} does not >exist and so on. >I understand that I am not creating a matrix of size 1*ndiv for the >data to be fed it. >So I tried using Table as follows: >a = Table[0,{1},{ndiv}] followed by the above For loop (when I >wanted to initialize the matrix with say i*i; I am not entirely clear as to what you are trying to create. You say matrix which usually means a 2 dimensional array. Yet the code you provide clearly has only one dimension Your first attempt doesn't work as you would like since you define a to be an empty list. Hence the error message. You could do what you want using a For loop with Append, i.e., In[1]:= ndiv=5; a={}; For[i=1,iâ?¤ndiv,i++,a=Append[a,i*i];]; a Out[4]= {1,4,9,16,25} But while this works, it isn't an efficient way to create this list. Better would be: In[5]:= Table[i^2,{i,ndiv}] Out[5]= {1,4,9,16,25} and even simpler is In[6]:= Range[ndiv]^2 Out[6]= {1,4,9,16,25} -- To reply via email subtract one hundred and four