Tell me more ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

How can I create an one dimensional array (a vector) evaluating a function of two variables? I know how to do it with one variable:

Array[f, n, {a, b}] generates a list using n values from a to b.

share|improve this question
3  
Just Flatten it afterwards. – Szabolcs Feb 19 at 14:09
f @@@ Tuples[{Range[a, b, c], Range[d, e, f]}] might be close to what you're looking for. It is, however, 10% slower than @Szabolcs' suggestion and might use more RAM. – whuber Feb 19 at 21:51

closed as too localized by belisarius, Oleksandr R., Yves Klett, m_goldberg, rm -rf Feb 19 at 21:51

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, see the FAQ.

1 Answer

You could use something akin to:

{ Array[f, {2, 2}, {a, b}, Sequence] }

(* {f[a, b], f[a, 1 + b], f[1 + a, b], f[1 + a, 1 + b]} *)

But I am not sure that this will be any more efficient that Flatten.

share|improve this answer
1  
It very likely won't be because Flatten just needs to walk the expression tree once (actually just change the metadata about dimensions for packed arrays), while each Sequence needs to be flattened out step by step. But it's an interesting solution. – Szabolcs Feb 19 at 16:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.