Bootle's paper on sublinear ZK arguments from 2016 has a nice explanation of how you can do the following: commit to a polynomial of large degree upfront with only ~ sqrt(degree) curve points. Then, when an evaluation is needed, you can prove that the value you claim is correct by using the linearity of the commitments, and you transfer ~sqrt(d) scalars. This is really only the very start of the paper :) I wrote a demonstration of how it works in Python:
https://gist.github.com/AdamISZ/8be8d1358ecaac86b631dee30ffb2d4a
Paper: https://eprint.iacr.org/2016/263.pdf
As noted this is *not* the zero knowledge form of the protocol; the openings of the commitments leak info about the coefficients. There might be use cases where that doesn't matter, but in any case, one can make this ZK by simply extending the entries in the rows of the matrix with random 'blinders'.