function [varlist,location] = mttFindEquationVariables(line) line = mttClipText(line) ; if isempty(line) namelist = [] ; location = [] ; else numbers = (line>=48 & line<=57) ; letters = (line>=65 & line<=90)|(line>=97 & line<=122) ; underscores = (line==95) ; dots = (line==46) ; apostrophes = (line==39) ; mask = (numbers|letters|underscores|dots|apostrophes) ; buffer = line ; buffer(~mask) = char(32*ones(1,sum(~mask))) ; next = 1 ; last = length(buffer) ; counter = 0 ; finding = any(mask) ; while finding i = min(find(~isspace(buffer(next:last))))+next-1 ; if isempty(i) finding = 0 ; else if i>last finding = 0 ; else if i==last j = last ; else j = min(find(isspace(buffer(i+1:last))))+i ; if isempty(j) j = last ; else j = j - 1 ; end end if ~mttIsNumericText(buffer(i:j)) var_found = 1 ; if j<last jj = min(find(~isspace(line(j+1:last))))+j ; if line(jj)=='(' var_found = 0 ; end end if var_found counter = counter + 1 ; varlist{counter} = buffer(i:j) ; location(counter) = i ; end end next = j + 1 ; finding = (next<last) & ~isempty(i) ; end end end end