clear all; clc; prompt = {'X domain: x_min, x_max','Y domain: y_min, y_max','Z domain: z_min, z_max', 'Delta x','Delta y','Delta z'}; name = 'Specify the fpoints.txt file'; dims = [1 50]; defaultanswer = {'0, 2','0, 2','0, 0','0.02','0.2','0.02'}; Measurement_Dialogue = inputdlg(prompt,name,dims,defaultanswer); if isempty(Measurement_Dialogue) return end x_interval = str2num(strcat('[',Measurement_Dialogue{1},']')); y_interval = str2num(strcat('[',Measurement_Dialogue{2},']')); z_interval = str2num(strcat('[',Measurement_Dialogue{3},']')); x_res = str2double(Measurement_Dialogue(4)); y_res = str2double(Measurement_Dialogue(5)); z_res = str2double(Measurement_Dialogue(6)); if mod(x_interval(end)-x_interval(1),x_res)==0 && mod(y_interval(end)-y_interval(1),y_res)==0 && mod(z_interval(end)-z_interval(1),z_res)==0 %proceed else disp('Domain is not divisible by a delta') return end % fpoint.txt generation n_x = 1+round((x_interval(end)-x_interval(1))/x_res); n_y = 1+round((y_interval(end)-y_interval(1))/y_res); n_z = 1+round((z_interval(end)-z_interval(1))/z_res); g=questdlg(strcat('Number of measurement points created: ',... num2str(n_x*n_y*n_z)),'Measurement msg box','Proceed','Abort','Abort'); switch g case 'GenCase_req_ok' %proceed case 'Abort' return end f_x = x_interval(1) + (0:n_x-1)*x_res; f_y = y_interval(1) + (0:n_y-1)*y_res; f_y = f_y'; f_z = z_interval(1) + (0:n_z-1)*z_res; f_x = repmat(f_x',n_y*n_z,1); f_y = repmat(f_y,1,n_x)'; f_y = f_y(:); f_y = repmat(f_y,1,n_z); f_y = f_y(:); f_z = repmat(f_z,n_x*n_y,1); f_z = f_z(:); fpoints = [f_x, f_y, f_z]; figure('Name','Measurement points visualized'); plot3(fpoints(:,1),fpoints(:,2),fpoints(:,3),'o'); xlabel('x');ylabel('y');zlabel('z'); file_id = fopen('fpoints.txt','w'); fprintf(file_id,'Points\n'); fprintf(file_id,'%f %f %f\n',fpoints'); fclose(file_id);