function [xPos, zPos, dataInMatrix] = getDataColumn(varargin) %% Read in file statistics, name, data size file.pathname = char(varargin(1)); %Pathname file.filename = char(varargin(2)); %Filename fid=fopen([file.pathname file.filename],'r'); %Open for read-only header1 = fgetl(fid); %Read header line 1 (char) header2 = fgetl(fid); %Read header line 2 (char) line1 = fgetl(fid); %Read first line of data (as char) line1=str2num(line1); %Convert to float file.numCol = size(line1,2); %Determine number of columns (6) file.data = fscanf(fid,'%g',[file.numCol,inf]); % data is a % 6 row x (M-1) col matrix file.data=file.data'; %Transpose row/columns % before concatenating % with line1 file.data = [line1; file.data]; %Concatenate line1 with remaining % data file.dataLength = size(file.data,1); %Length of each column vector %% Find scan dimensions set = file.data(:,2); %Make Z positions into a set [tf, index] = ismember(0, set); %Find the last set index where the value % 0 (X = 0 is the first horizontal line % of data) is a member of the set (this % gives the number of scan points in X that % are at position X=0mm. xSize = index; %Set number of scan points in X zSize = file.dataLength/xSize; %Set number of scan points in Z %% Just get data column given by check boxes % Column vector of X and Z positions stepZ = file.data(xSize+1,2)-file.data(xSize,2); xPos = file.data(1:xSize,1); zPos = [0:stepZ:file.data(file.dataLength,2)]'; values = [get(findobj('tag','tabox'),'value'); get(findobj('tag','rabox'),'value'); get(findobj('tag','tpbox'),'value'); get(findobj('tag','rpbox'),'value');]; if values(1) == 1 dataIn = file.data(:,3); elseif values(2) == 1 dataIn = file.data(:,4); elseif values(3) == 1 %dataIn = (2*pi/360)*file.data(:,5); dataIn = file.data(:,5); else %dataIn = (2*pi/360)*file.data(:,6); dataIn = file.data(:,6); end dataInMatrix = zeros(xSize,zSize); % Sort column vectors of data into the matrices for j = 1:zSize for i = 1:xSize dataInMatrix(i,j) = dataIn(xSize*j-xSize+i); end end % Test and remove 0dB points for j = 1:zSize for i = 1:xSize if dataInMatrix(i,j) <= 1. if i <= 3 dataInMatrix(i,j) = median([dataInMatrix(i+1,j) dataInMatrix(i+2,j) dataInMatrix(i+3,j) dataInMatrix(i+4,j) dataInMatrix(i+5,j)]); elseif i >= (xSize-3) dataInMatrix(i,j) = median([dataInMatrix(xSize-1,j) dataInMatrix(xSize-2,j) dataInMatrix(xSize-3,j) dataInMatrix(xSize-4,j) dataInMatrix(xSize-5,j)]); else dataInMatrix(i,j) = median([dataInMatrix(i-2,j) dataInMatrix(i-1,j) dataInMatrix(i+1,j) dataInMatrix(i+2,j)]); end end end end %dataInMatrix = dataInMatrix';