I understand that you wish to read a large txt file with four columns and many rows in MATLAB.
A possible way to approach this can be to read the required data in smaller chunks. Functions like 'datastore' or 'mapreduce' can help to read the data in smaller chunks. It is also mentioned in the following answer with a similar question:
You can also refer to this answer which also mentions reading the data sequentially using the 'fgetl'
You can refer to the following MathWorks documentations to know more about these functions:
Hope this helps! Thanks.