⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 def_sources.m

📁 用MATLAB进行海洋水团的模拟程序
💻 M
字号:
% How to define the source water masses ? Just an example%% EXAMPLE: data from throughflow region (Timor Sea)%%% This program is part of the OMP package from:% Institut fuer Meereskunde% J. Karstensen % Troplowitzstr. 7% 22529 Hamburg% Germany%% BUGS: karstens@ifm.uni-hamburg.de%% OUTPUT to be used in OMP packet:% *******************************************% G:  	value to fill in qwt_step.m% err:	value to caluculate weigths%clear all%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EDITING SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input dataset from source region of a water mass %%%%% (*.MAT file in standard format):load source_data%%%%%%%%%% flags: insert here what kind of flag is used (eg. -9, NaN, 99999, etc.) flag=nan;%%%%%%%% name of "independent" parameter (as string variable ' '!!):nam_indep='ptemp';%%%%%%%% choose your own fit range:fit_max=16.4; %fit_min=10;  %%%%%%%%% names of "dependent" parameter to be fitted (as string variable ' ';' ')para=[' sal';' oxy';'  ph';'  ni'];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  FROM HERE ON:  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EDITING ONLY IF YOU KNOW WHAT YOU ARE DOING !! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%eval(['in_depend=' nam_indep ';'])%%%%%%%% sort by independent parameter[in_depend,I]=sort(in_depend);%%%%%%% number of independent parameterno_para=size(para,1);%%%%%%% find independent parameter range:ind=find(in_depend<=fit_max&in_depend>=fit_min);%%%%% check for nan  check=find(isnan(in_depend));if ~isempty(check) disp(' ') disp([' Flag check: ' nam_indep]) disp(' Remove NaN from data for use in OMP analysis!')end %%%%%%%%% MIN/MAX indices of indenpendent parameterind_low=min(ind);ind_upp=max(ind);G(1,1:2)=[fit_max fit_min];%%%%% split subplots:sub1=ceil((no_para)/2);disp(' ')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% loop to fit all parameters  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for main=1:no_para  %%% START OF MAIN LOOP%%%%%%% sort all variables accordinglyeval([para(main,:) '=' para(main,:) '(I);'])disp([' Now fitting: ' para(main,:)]) eval(['parafit=' para(main,:) ';'])     subplot(sub1,2,main)    plot(parafit,in_depend,'c.','markersize',15)    xlabel(para(main,:))    ylabel(nam_indep)%%%%% check for nan  check=find(isnan(parafit));if ~isempty(check) disp(' Remove NaN from data for use in OMP analysis!') disp(' ')end  %%%%%%%%%%%%%%%%%ix=find(in_depend(ind)~=flag&~isnan(in_depend(ind))&parafit(ind)~=flag&~isnan(parafit(ind)));%%%%%%%%  fit to data and error estimate  %%%%%%%%%%   [coeff,er]=polyfit(in_depend(ind(ix)),parafit(ind(ix)),1);   [da,err_fit]=polyval(coeff,in_depend(ind(ix)),er);hold on,plot(da,in_depend(ind(ix)),'r-','linewidth',2)% sample fit to SWT matrix:G(main+1,1:2)=polyval(coeff,[fit_max fit_min]);err(main)=mean(err_fit);%%% nicer axis of plot  set(gca,'ylim',[fit_min-2 fit_max+2])end  %%%% OF MAIN LOOP%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%disp(' ')disp('Fitted Source water matrix (G) is:')Gdisp('  ')disp('Mean fit error (err) of dependent variables: ')err

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -