MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Using values from inside a matrix for a new row

There are many solutions, for example this 3 lines solution :

initTable = {{1, 2, 3}}
addNewLine[table_] := Append[table, Map[f, table[[-1]], {1}]]  (* see remark 
(1) *)
Nest[addNewLine, initTable, 10]

Remarks :

(1) if you prefer, you can use the equivalent syntax :
    addNewLine[table_] := Append[table, f /@ table[[-1]]]   (*more 
concise,usefull, readable when you become used to mathematica *)
    addNewLine[table_] := Append[table, f /@ First[table]]  (*closer to 
Shakespeare who doesn't use [[...]] at all ! *)

(2) Thanks to your textual explanations, I have done
a  implementation that reflect the way you are thinking, not
the way computers are working. That is precisely the way
you should use mathematica :

You are describing the problem in terms of "how I do it with Excel", 
one line from the line above). That is one solution, not bad,  to describe 
want you want to
do. I have kept this idea in the code.

On the contrary, It is not a good idea to try to describe the problem
in terms of "how a stupid software would do it"  ("initialization", use of 
"variables i,j",
"loop", ... type declaration ...). It is useless and parasitical for the 
mind, unless you have to deal
with speed problem during the calculation, (you are far from this 

"Michelle A" <hfvballgurl33 at> a écrit dans le message de news: 
j89vb0$1st$1 at
> Hello,
> I am new to Mathematica and I am trying to create an array of values
> that uses info from the line above.  I'm thinking of it like how Excel
> would do it but I'm not sure how to go about it in Mathematica.  I've
> been getting the RecursionLimit error when I try to call an earlier
> element of the array.
> Here is what I'm thinking in a simplified form:
> Say I simply want to add a constant (1 here) to each element above. So
> I want my answer to be like this:
> 1 2 3
> 2 3 4
> 3 4 5
> f = {{1, 2, 3}, {f[[1, 1]] + 1, f[[1, 2]] + 1, f[[1, 2]] + 1}} and
> continue to have it grow to be a 10x3 matrix.  I know I'll need some
> i's and j's but I can't get it to work.  Do I need to initialize an
> array or make a loop to just add one row at a time in a separate
> step?
> Any help is greatly appreciated.  Thank you

  • Prev by Date: Re: Table to calculate faster
  • Next by Date: Re: bug ?
  • Previous by thread: Re: Using values from inside a matrix for a new row
  • Next by thread: Re: Using values from inside a matrix for a new row