annotate functions/funcsMobilab/readCSV.m @ 0:2fadb31a9d55 tip

Import code by Vuegen et al
author Dan Stowell <dan.stowell@elec.qmul.ac.uk>
date Fri, 11 Oct 2013 12:02:43 +0100
parents
children
rev   line source
dan@0 1 function [txt_struct] = readCSV(file)
dan@0 2
dan@0 3 % text openen om volledig in te lezen
dan@0 4 fid = fopen(file);
dan@0 5 txt = '';
dan@0 6 if fid ~= -1
dan@0 7 while 1
dan@0 8 line = fgetl(fid);
dan@0 9 if ~ischar(line), break, end
dan@0 10 txt = [txt line ' \n '];
dan@0 11 end
dan@0 12 end
dan@0 13 fclose(fid);
dan@0 14
dan@0 15 % text aanpassen
dan@0 16 txt_struct = {};
dan@0 17 l = 1;
dan@0 18 k = 1;
dan@0 19 voorlopigVak = '';
dan@0 20 volgendeOverslaan = false;
dan@0 21 for i = 1:length(txt)
dan@0 22 switch txt(i)
dan@0 23 case ';'
dan@0 24 txt_struct{l,k} = voorlopigVak;
dan@0 25 voorlopigVak = '';
dan@0 26 k = k+1;
dan@0 27 case '\'
dan@0 28 if txt(i+1) == 'n'
dan@0 29 txt_struct{l,k} = voorlopigVak;
dan@0 30 voorlopigVak = '';
dan@0 31 l = l+1;
dan@0 32 k = 1;
dan@0 33 volgendeOverslaan = true;
dan@0 34 else
dan@0 35 if volgendeOverslaan == false
dan@0 36 voorlopigVak = [voorlopigVak txt(i)];
dan@0 37 else
dan@0 38 volgendeOverslaan = false;
dan@0 39 end
dan@0 40 end
dan@0 41 otherwise
dan@0 42 if volgendeOverslaan == false
dan@0 43 voorlopigVak = [voorlopigVak txt(i)];
dan@0 44 else
dan@0 45 volgendeOverslaan = false;
dan@0 46 end
dan@0 47 end
dan@0 48 end
dan@0 49
dan@0 50 % lege lijnen (of met spaties) onderaan wissen
dan@0 51 ok = false;
dan@0 52 while ok == false
dan@0 53 for i = 1:size(txt_struct,2);
dan@0 54 for j = 1:length(txt_struct{end,i})
dan@0 55 if not(strcmp(txt_struct{end,i}(j), ' '))
dan@0 56 ok = true;
dan@0 57 end
dan@0 58 end
dan@0 59 end
dan@0 60 if ok == false
dan@0 61 txt_struct = txt_struct(1:end-1,:);
dan@0 62 end
dan@0 63 end
dan@0 64 end