Bt ac9.m
Jump to navigation
Jump to search
% command file for matlab bottom top determination: Daniel C. Konnoff % 10/08/92 % modified: JBU Oct 97 - fits new 1997 ac9 processing scheme % - yadda yadda yadda % modified: SRW 98 - now a function that returns [d] function [d]=bt_ac9(mat_in); clf; % set graph geometry set (gcf,'units','inches', 'pos',[2 1 9 5]) % declare variables u=[]; % holds the points d=[]; % holds the index's only cast=0; plot(mat_in(:,1),mat_in(:,2),'.');grid; while(1) cast=cast+1 which=['Selecting points for cast: ',num2str(cast)]; % first point disp('select the first region') title(which); [x,y]=ginput(2); % zoom to start point of the cast if y(1)<y(2) if x(1)<x(2) axis([x(1),x(2),y(1),y(2)]) else axis([x(2),x(1),y(1),y(2)]) end else if x(1)<x(2) axis([x(1),x(2),y(2),y(1)]) else axis([x(2),x(1),y(2),y(1)]) end % end if end % end if % pretty the graph hold on plot(mat_in(:,1),mat_in(:,2),'ro'); grid; title(which); plot([x(1), x(2)], [0, 0], 'g-.'); hold off; % find specific start point disp('click on start of cast') [x,y]=ginput(1); % add the points to cast_id array u=[u;x,y]; % last point plot(mat_in(:,1),mat_in(:,2),'.');grid; title(which); hold on; %d=ceil(u(:,1)) d=[]; for id=1:size(u,1), dd=find(mat_in(:,1)<u(id,1));%___________________________ d=[d; dd(end)];%----------------------------------------- end for ip=1:2:size(d,1), plot(u(:,1),u(:,2),'ro'); end % $$$ plot(mat_in(d(1):d(end),1),... % $$$ mat_in(d(1):d(end),2),'g',u(:,1),u(:,2),'ro'); disp('select the end region') [x,y]=ginput(2); % zoom to end point of the cast if y(1)<y(2) if x(1)<x(2) axis([x(1),x(2),y(1),y(2)]) else axis([x(2),x(1),y(1),y(2)]) end else if x(1)<x(2) axis([x(1),x(2),y(2),y(1)]) else axis([x(2),x(1),y(2),y(1)]) end % end if end % end if % pretty the graph hold on plot(mat_in(:,1),mat_in(:,2),'ro');grid; title(which); plot([x(1), x(2)], [0, 0], 'g-.'); hold off; % find specific end point disp('click on end of cast') [x,y]=ginput(1); % add the points to cast_id array u=[u;x,y]; % are we done yet? axis('auto'); plot(mat_in(:,1),mat_in(:,2),'.');grid; title(which); hold on; %d=ceil(u(:,1)) d=[]; for id=1:size(u,1), dd=find(mat_in(:,1)<u(id,1)); d=[d; dd(end)]; end for ip=1:2:size(d,1), plot(mat_in(d(ip):d(ip+1),1),... mat_in(d(ip):d(ip+1),2),'g',u(:,1),u(:,2),'ro'); end % $$$ plot(mat_in(d(1):d(end),1),... % $$$ mat_in(d(1):d(end),2),'g',u(:,1),u(:,2),'ro'); title('Selected points'); grid; disp(' '); %disp('Want to save these points?'); %done=input('y or n: ','s'); %disp(' ') % $$$ if (done=='y'|done=='Y') % $$$ d(1,1)=ceil(u(1,1)); % copy index's to d vector % $$$ d(2,1)=floor(u(2,1)); % $$$ d=[d, mat_in(d,1), -mat_in(d,2)]; % $$$ disp('Your final cast_id array:') % $$$ disp(d) % $$$ save bt.pts d /ascii; % $$$ else % $$$ disp('castID not saved, re-run by typing "bt_ac9" at the prompt'); % $$$ end % end if-else ButtonName=questdlg('Save these points to CastID matrix?',... '','Yes','No','No'); switch ButtonName, case 'Yes' %d=ceil(u(:,1)); d=[]; for id=1:size(u,1), dd=find(mat_in(:,1)<u(id,1)); d=[d; dd(end)]; end %d(1,1)=ceil(u(1,1)) % copy index's to d vector %d(2,1)=floor(u(2,1)) case 'No' disp('Points not saved to castID, '); for ip=1:2:size(d,1), plot(mat_in(d(ip):d(ip+1),1),... mat_in(d(ip):d(ip+1),2)); end u(length(u)-1:length(u),:)=[]; %d=ceil(u(:,1)); d=[]; for id=1:size(u,1), dd=find(mat_in(:,1)<u(id,1)); d=[d; dd(end)]; end end % switch ButtonName=questdlg('Pick points for another cast?',... '','Yes','No','No'); switch ButtonName, case 'Yes' case 'No' if ~isempty(d), d=[d, mat_in(d,1), -mat_in(d,2)]; disp('Your final cast_id array:') disp(d) %cd(pb) %-------------------------- save bt.pts d /ascii; % cd .. end return; end % switch end % while return