diff --git a/include/libcamera/internal/matrix.h b/include/libcamera/internal/matrix.h
index 3701d0ee980b..7a71028c473a 100644
--- a/include/libcamera/internal/matrix.h
+++ b/include/libcamera/internal/matrix.h
@@ -33,7 +33,7 @@ public:
 		data_.fill(static_cast<T>(0));
 	}
 
-	Matrix(const std::vector<T> &data)
+	Matrix(const std::array<T, Rows * Cols> &data)
 	{
 		std::copy(data.begin(), data.end(), data_.begin());
 	}
diff --git a/src/libcamera/matrix.cpp b/src/libcamera/matrix.cpp
index 55359aa206ee..4d95a19bfbb9 100644
--- a/src/libcamera/matrix.cpp
+++ b/src/libcamera/matrix.cpp
@@ -32,7 +32,7 @@ LOG_DEFINE_CATEGORY(Matrix)
  */
 
 /**
- * \fn Matrix::Matrix(const std::vector<T> &data)
+ * \fn Matrix::Matrix(const std::array<T, Rows * Cols> &data)
  * \brief Construct a matrix from supplied data
  * \param[in] data Data from which to construct a matrix
  *
