Idiom #26 Create a 2-dimensional array

Declare and initialize a matrix x having m rows and n columns, containing real numbers.

double[][] x = new double[m][n];
X : array (1 .. M, 1 .. N) of Float := (others => (others => 1.0));
#include <stdlib.h>
double **x=malloc(m*sizeof(double *));
int i;
for(i=0;i<m;i++)
x[i]=malloc(n*sizeof(double));
const int m = 2;
const int n = 3;
double x[m][n];
(for [i (range 1 (inc m))]
(for [j (range 1 (inc n))]
(* i j)))
#include <vector>
std::vector<std::vector<double>> x (m, std::vector<double>(n));
var x = new double[m, n];
auto x = new double[][](m, n);
var x = new List.generate(m, (_) => new List(n));
var x = new List.generate(m, (_) => new List.filled(n, 0));
x = for _ <- 1..m, do: for _ <- 1..n, do: 0.0
X = [{R * 1.0, C * 1.0} || R <- lists:seq(1, M), C <- lists:seq(1, N)].
real, dimension(m,n) :: x
func make2D(m, n int) [][]float64 {
buf := make([]float64, m*n)

x := make([][]float64, m)
for i := range x {
x[i] = buf[:n:n]
buf = buf[n:]
}
return x
}
func make2D[T any](m, n int) [][]T {
buf := make([]T, m*n)

x := make([][]T, m)
for i := range x {
x[i] = buf[:n:n]
buf = buf[n:]
}
return x
}
const m, n = 3, 4
var x [m][n]float64
x = [ [ j**(1/i) | j <- [1..n] ] | i <- [1..m] ]
var x = [];
for (var i = 0; i < m; i++) {
x[i] = [];
}
const x = new Array(m).fill(new Array(n).fill(Math.random()));
val x = Array(m, { DoubleArray(n) })
(make-array (list m n)
:element-type 'double-float
:initial-element 1.0d0)
x = {}
for i=1,m do
x[i] = {}
for j=1,n do
x[i][j] = 0
end
end
local x = setmetatable({},{
__index = function(t1,k1)
t1[k1] = setmetatable({},{
__index = function(t2,k2)
t2[k2] = 0
return t2[k2]
end
})
return t1[k1]
end
})
NSArray *x=@[
@[@0.1, @0.2, ... ], // n column values
... // m rows
];
\$x = array();
for(\$i = 0; \$i < count(\$x); \$i++){
\$x[\$i] = array();
}
\$m = 3;
\$n = 4;

\$x = array_map(
function () use (\$m) { return array_fill(0, \$m, 0); },
range(1, \$n)
);
var _x: array[_m,_n] of Double;
my @array = (
[ 1.0, 0.0, 0.0 ],
[ 0.0, 1.0, 0.0 ],
[ 0.0, 0.0, 1.0 ],
"first three slots are a 3x3 identity matrix",
"fourth and fifth slots contain strings"
);

x = [[0] * n for _ in range(m)]
x = Array.new(m) { Array.new(n) }
let mut x = [[0.0; N] ; M];
let mut x = vec![vec![0.0f64; N]; M];
val x = Array.ofDim[Double](m,n)
(build-list m (lambda (x)
(build-list n (lambda (y) 0))))
x := Matrix
rows: m
columns: n
element: 1.0
Dim x(m - 1, n - 1) As Double

programming-idioms.org