how to fread not a file, but a vector that equals fread a file in binary form?

1 view (last 30 days)
I have a vector
aVec = [45,234,123,.........]
% that is equivalent to:
% fread(anyfile, 'r')
I want to read that vector as text file and get lines:
fid = fopen( filepath, 'rt')
fgetline(fid)
Is there a way that skips the file writing to hardisk and directely read the vector as file?
Maybe
java.io.StringBufferInputStream
or other ways?

Accepted Answer

Guillaume
Guillaume on 1 Sep 2019
There is not fread(fileid, 'r'), there is a fopen(filename, 'r') but that tells us nothing about how you read the file initially.
Assuming that you've read the file as fread(fileid), then what you've got is the sequence of bytes (inefficiently stored as double) and converting that back to characters may just be simply:
chardata = char(aVec);
if you want to split that into lines:
lines = strsplit(char(aVec), {'\n', '\r'})
The above assumes that the file text encoding is the same as that used by matlab. If not, you'll have to use native2unicode with the proper encoding first.

More Answers (0)

Categories

Find more on Data Import and Analysis in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!