I have a matrix $A\in\{0,1\}^{d\times n}$ and $rank(A)=d,d<n$, and another matrix $X\in \mathbb{R}^{d\times n}$, but I do not know the rank of $X$. What can we say about the rank of their Hadamard product $rank(A\odot X)$

And what if $rank(A)=k, k<d$?

  • 2
    $\begingroup$ I would say that you can say nothing about it. Consider $A$ a matrix with an identity block of size $d$ and $X=A$, their product would have the same rank. Then start replacing the $1$s by $0$s and you end up with a sequence of matrices with ranks $d-1, d-2, \cdots 0$. $\endgroup$
    – nicoguaro
    Commented May 9, 2019 at 2:22
  • 4
    $\begingroup$ Conversely, start with the matrix $A$ that is all ones. It has rank 1. The mask it with a matrix $X$ that is the identity matrix, and the rank of the Hadamard product is full. $\endgroup$ Commented May 9, 2019 at 16:36

1 Answer 1


For Hadamard product, you have (source):

$$ \text{rank}(A\odot X) \leq \text{rank}(A) \text{rank}(X) $$

This is as tight as you can go even with knowing $\text{rank}(X)$. Without knowing anything about $X$, there is certainly nothing you can say. (See the examples that nicoguaro and Wolfgang Bangerth brought in the comments section).

Now, imagine you know $\text{rank}(X)=r$, and $\text{rank}(X)\geq1$ (I think the without loss of generality clause is applicable here).

  1. If $\text{rank}(A)=d$, then the inequality above is totally useless, as it would not bound anything: $d\cdot r \geq d$, which is the same conclusion you would get from just looking at $A\odot X \in \mathbb{F}^{d\times n}, d<n$.
  2. If $\text{rank}(A)=r<d$, depending on what you know about $X$ can give you something, but still not too exciting.

Hadamard products are tricky, and a lot of things one expects from them (based on prior knowledge of the regular matrix-matrix product) do not hold.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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