--- a +++ b/Semantic Features/parseCSV.m @@ -0,0 +1,42 @@ +function [ valueArray headerArray dcmArray ] = parseCSV( fileName ) +%parseCSV Returns a nice numerical matrix with all the values and a cell +%array with all the headers +% Note this is customized to expect the last cell to hold an image name +% and automatically chops off the extension to turn it into an integer + +textData = importdata(fileName); +headerText = textData{1}; + +%Get array of all the header's +[value, remainder] = strtok(headerText, ','); +headerArray = {value}; +while length(remainder) > 0 + %fprintf('%s\n', value); + [value, remainder] = strtok(remainder, ','); + headerArray{length(headerArray) + 1} = value; + +end +%fprintf('%s\n', value); + +%Get the data +valueArray = zeros(length(textData)-1, length(headerArray)); +for i = 2:length(textData); %for each row in the file + [value, remainder] = strtok(textData{i}, ','); + valueArray(i-1, 1) = str2num(value); + for j = 2:length(headerArray)-1 %last one is filename + %fprintf('%s\n', value); + [value, remainder] = strtok(remainder, ','); + valueArray(i-1, j) = str2num(value); + + end %Special case to handle the file name ID at the end + [value, remainder] = strtok(remainder, ','); + value = value(1:end-4); + %fprintf('%s\n', value); + valueArray(i-1, j+1) = str2num(value); +end + +dcmArray = valueArray(:,end); +headerArray = headerArray(:,1:end-1); +valueArray = valueArray(:,1:end-1); + +clear textData headerText \ No newline at end of file