How to read vector from .RTF file into MATLAB?

46 views (last 30 days)
Hi MATLAB Central,
I have a very simply question - I would like to read a single row vector (called "cells_QC") from an .rtf file into MATLAB. My RTF file contains only something like:
cells_QC = [2,4,5,6,8,10,12,14,15,16,17,18,19,20,21;];
In retrospect, I shouldn't have saved these vectors in .rtf. But now I have to parse through a bunch of folders and read them in. I attempted to use functions fopen, load and fscanf, but when read they just give a single number.
I would really appreciate any help with how to read this into MATLAB as a vector.
Thanks in advance,
Anders

Accepted Answer

Anders
Anders on 31 Jan 2014
After reading around, I actually found a solution. This might be not very elegant, but it works fine. I am just posting this in cases anyone else is interested. For "RTF_file path", give the file path for the RTF file.
fid = fopen(RTF_file_path);
%get each line in the file and run WHILE loop until you read the line with
%'cells_QC'
tline = fgetl(fid);
while ischar(tline)
desired_line = strfind(tline, 'cells_QC');
%If the desired line is found break the loop
if desired_line
break;
end
tline = fgetl(fid);
end
%Find beginning and end of the row_vector
vector_left = find(tline == '['); vector_right = find(tline == ']');
vector = tline(vector_left:vector_right);
%Convert from string to vector
cells_QC = str2num(vector);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!