Array[Symbol["x" <> ToString @ #][t] &, 15]
{x1[t], x2[t], x3[t], x4[t], x5[t], x6[t], x7[t], x8[t], x9[t],
x10[t], x11[t], x12[t], x13[t], x14[t], x15[t]}
Array[Symbol[StringJoin["y", ToString /@ {##}]][t] &, {2, 2}]
{{y11[t], y12[t]}, {y21[t], y22[t]}}
As rhermans pointed out, a better approach is
Array[x[##][t], 15]
{x[1][t], x[2][t], x[3][t], x[4][t], x[5][t], x[6][t], x[7][t],
x[8][t], x[9][t], x[10][t], x[11][t], x[12][t], x[13][t], x[14][t],
x[15][t]}
and
Array[y[##][t], {2,2}]
{{y[1, 1][t], y[1, 2][t]}, {y[2, 1][t], y[2, 2][t]}}
If you want x[1] to appear as x1, say, you can use Format:
Format[x[a_]] := Symbol["x" <> ToString[a]]
Array[x[##][t] &, {5}]
{x1[t], x2[t], x3[t], x4[t], x5[t]}
or
Format[y[a__]] := Subscript[y, a]
Array[y[##][t] &, {2, 2}] // TeXForm
$ \left(
\begin{array}{cc}
y_{1,1}(t) & y_{1,2}(t) \\
y_{2,1}(t) & y_{2,2}(t) \\
\end{array}
\right)$
ToString-ToExpression[orSymbol] just to generate variable names is pretty much unacceptable, or at the very least should be the last thing you try. I don't know of a single case where this couldn't be replaced with a better solution" in this question ? – rhermans Jul 19 '18 at 11:48Array[x[##][t] &, 15]would also look much cleaner. – kglr Jul 19 '18 at 11:52