亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? refrac.m

?? 利用matlab計算晶體結構的x射線衍射圖譜
?? M
字號:
function xresult = refrac(varargin)% REFRAC  Material property function interacted with X-rays %    r = refrac('Formula String',Energy,MassDensity,'PlotStyle') returns%    disperion absorption, critical angle and attenuation length%    correponding to the enery input. Also plot if energy is a list.%%    Input: %       1) Chemical formula is case sensitive (e.g. CO for Carbon Monoxide%           vs Co for Cobalt);%       2) Energy (0.03KeV~30KeV). Can be a single energy or an energy list;%       3) Mass density (g/cm^3);%       4) PlotStyle can be 'logxy','linear','logx' or 'logy'. Default%           is 'linear'.%    %    Output structure:%       1) Chemical formula;%       2) Molecular weight;%       3) Number of electrons per molecule;%       4) Mass density (g/cm^3);%       5) Electron density (1/m^3);%       6) X-ray energy (KeV);%       7) Corresponding X-ray wavelength (m);%       8) Dispersion;%       9) Absorption;%       10) Critical angle (degree);%       11) Attenuation length (m).%       %    Plot:%       Only when energy is a list, plot dispersion, absorption, critical%       angle and attenuation length.%%    Example 1: >> result=refrac('Si3N4',8.04778,3.44)%           gives an output with structure below:%               result = %                     formula: 'Si3N4'%             molecularWeight: 140.28%           numberOfElectrons: 70%                 massDensity: 3.44%             electronDensity: 1.4767e+028%                      energy: 8.0478%                  wavelength: 1.5406e-010%                  dispersion: 1.1164e-005%                  absorption: 1.6477e-007%               criticalAngle: 0.27074%                   attLength: 7.4403e-005%    %    Example 2: >>result=refrac('Si3N4',8:0.5:10,3.44)%           gives an output with structure below together with a plot in%           linear scale.%               result =%                     formula: 'Si3N4'%             molecularWeight: 140.28%           numberOfElectrons: 70%                 massDensity: 3.44%             electronDensity: 1.4767e+028%                      energy: [5x1 double]%                  wavelength: [5x1 double]%                  dispersion: [5x1 double]%                  absorption: [5x1 double]%               criticalAngle: [5x1 double]%                   attLength: [5x1 double]%           result.energy, result.dispersion, etc. show the lists of this%           values. >>result=refrac('Si3N4',8:0.5:10,3.44,'logxy') gives a%           plot in log-log plot.%%    For more information about X-ray interactionw with matter, go to%       http://www.cxro.lbl.gov%       http://www.nist.gov/%   %    Atomic scattering factor table is taken from the above two websites.%%    Copyright 2004 Zhang Jiang%    $Revision: 1.0 $  $Date: 2004/10/10 18:52:19 $if nargin ~= 3 & nargin ~= 4    error('Incorrect inputment.');    return;endformulaStr = varargin{1};energy = varargin{2};massDensity = varargin{3};if ~ischar(formulaStr)    error('Invalid chemical formula.');    return;endif ~isnumeric(energy) | isempty(energy)    error('Invalid x-ray energy.');    return;endif min(energy)<0.03 | max(energy)>30    error('Energy is out of range 0.03KeV~30KeV.');    return;endif ~isnumeric(massDensity) | length(massDensity) > 1    error('Invalid mass density.');    return;endif nargin == 4    plotStyle = varargin{4};    if ~strcmp(plotStyle,'logxy') &...            ~strcmp(plotStyle,'linear') &...            ~strcmp(plotStyle,'logx') &...            ~strcmp(plotStyle,'logy')        error('Invalid PlotStyle.');        return;    endelse    plotStyle = 'linear';end%===============================================================% some constants%===============================================================THOMPSON = 2.81794092e-15;          % mSPEEDOFLIGHT = 299792458;           % m/secPLANCK = 6.626068e-34;              % m^2*kg/secELEMENTCHARGE = 1.60217646e-19;     % CoulombsAVOGADRO = 6.02214199e23;           % mole^-1%===============================================================% sort energy list and convert to wavelength%===============================================================energy = sort(energy);  % sort energy from min to maxwavelength = (SPEEDOFLIGHT*PLANCK/ELEMENTCHARGE)./(energy'*1000.0);%===============================================================% determine elements and number of atoms in the formula%===============================================================nElements = 0;formula.elements = {};formula.nAtoms = {};try    for iFormulaStr = 1:length(formulaStr)        formulaChar = formulaStr(iFormulaStr);        if formulaChar <= 'Z' &  formulaChar >= 'A'            nElements = nElements + 1;            formula.elements{nElements} = formulaChar;            formula.nAtoms{nElements} = '0';        elseif formulaChar <= 'z' &  formulaChar >= 'a'...                & ((formulaStr(iFormulaStr-1) <= 'Z'& formulaStr(iFormulaStr-1) >= 'A')...                | (formulaStr(iFormulaStr-1) <= 'z'& formulaStr(iFormulaStr-1) >= 'a'))            formula.elements{nElements} = ...                [formula.elements{nElements},formulaChar];        elseif (formulaChar <= '9' &  formulaChar >= '0') | formulaChar == '.'            formula.nAtoms{nElements} = ...                [formula.nAtoms{nElements},formulaChar];        else            error('Invalid chemical formula.');            return;        end    endcatch    error('Invalid chemical formula.');    return;endfor iElements = 1:nElements    formula.nAtoms{iElements} = str2num(formula.nAtoms{iElements});    if formula.nAtoms{iElements} == 0        formula.nAtoms{iElements} = 1;    endend%===============================================================% read f1 and f2 from tables%===============================================================formula.f1f2Table = {};for iElements = 1:nElements    file = fullfile(matlabroot,'toolbox','xrayrefraction',...        'AtomicScatteringFactor',lower(formula.elements{iElements}));    file = [file,'.nff'];    try         fid = fopen(file);        fgetl(fid);    catch        error(['Element ''',formula.elements{iElements},...            ''' is NOT in the table list.']);        return;    end    table = cell2mat(textscan(fid,'%f %f %f'));    table(find(table(:,1)<29),:) = [];    formula.f1f2Table{iElements} = table;    fclose(fid);end%===============================================================% determine the atomic number and atomic weight%===============================================================formula.atomicNumber = {};formula.atomicWeight = {};file = fullfile(matlabroot,'toolbox','xrayrefraction','periodictable.mat');load(file);for iElements = 1:nElements    for iAtomicnum =1:length(elementAbbr)        if strcmp(elementAbbr{iAtomicnum},formula.elements{iElements})            formula.atomicNumber{iElements} = iAtomicnum;            formula.atomicWeight{iElements} = atomicWeight(iAtomicnum);            break;        end    endend%===============================================================% determine molecular weight and number of electrons%===============================================================formula.molecularWeight = 0;formula.numberOfElectrons = 0;for iElements = 1:nElements    formula.molecularWeight = formula.molecularWeight + ...        formula.nAtoms{iElements}*formula.atomicWeight{iElements};    formula.numberOfElectrons = formula.numberOfElectrons +...        formula.atomicNumber{iElements}*formula.nAtoms{iElements};end%===============================================================% interpolate to get f1 and f2 for given energies%===============================================================formula.interpf1 = {};formula.interpf2 = {};for iElements = 1:nElements%     formula.interpf1{iElements} = exp(interp1(...%         formula.f1f2Table{iElements}(:,1),...%         log(formula.f1f2Table{iElements}(:,2)),...%         energy'*1000,'cubic'));%     formula.interpf2{iElements} = exp(interp1(...%         formula.f1f2Table{iElements}(:,1),...%         log(formula.f1f2Table{iElements}(:,3)),...%         energy'*1000,'cubic'));    formula.interpf1{iElements} = interp1(...        formula.f1f2Table{iElements}(:,1),...        formula.f1f2Table{iElements}(:,2),...        energy'*1000,'cubic');    formula.interpf2{iElements} = interp1(...        formula.f1f2Table{iElements}(:,1),...        formula.f1f2Table{iElements}(:,3),...        energy'*1000,'cubic');end%===============================================================% calculate dispersion, absorption, critical angle and attenuation length%===============================================================% initializexresult.formula = formulaStr;xresult.molecularWeight = formula.molecularWeight;xresult.numberOfElectrons = formula.numberOfElectrons;xresult.massDensity = massDensity;xresult.electronDensity = 1e6*massDensity/formula.molecularWeight*AVOGADRO...    *formula.numberOfElectrons;xresult.energy = energy';xresult.wavelength = wavelength;xresult.dispersion = zeros(length(energy),1);xresult.absorption = zeros(length(energy),1);xresult.criticalAngle  = zeros(length(energy),1);xresult.attLength = zeros(length(energy),1);for iElements = 1:nElements    xresult.dispersion = xresult.dispersion + ...        wavelength.^2/(2*pi)*THOMPSON*AVOGADRO*massDensity*1e6 / ...        formula.molecularWeight * ...        formula.nAtoms{iElements} .* ...        formula.interpf1{iElements};    xresult.absorption = xresult.absorption + ...        wavelength.^2/(2*pi)*THOMPSON*AVOGADRO*massDensity*1e6 / ...        formula.molecularWeight * ...        formula.nAtoms{iElements} .* ...        formula.interpf2{iElements};endxresult.criticalAngle = sqrt((2*xresult.dispersion))*180/pi;xresult.attLength = xresult.wavelength./xresult.absorption/(4*pi);% assignin('base','formula',formula);%===============================================================% plot%===============================================================% plot only when energy is a listif length(energy) == 1    return;endswitch plotStyle    case 'logxy'        xscale = 'log';        yscale = 'log';    case 'logx'        xscale = 'log';        yscale = 'linear';    case 'logy'        xscale = 'linear';        yscale = 'log';    case 'linear'        xscale = 'linear';        yscale = 'linear';endxresultFig = figure(...    'Name',['X-Ray Interactions with ',formulaStr],...    'NumberTitle','off',...    'PaperOrientation','landscape');subplot(2,2,1);% plot(xresult.energy,xresult.dispersion,'b-o',...%     'MarkerEdge','r','MarkerSize',0.1);plot(xresult.energy,xresult.dispersion);xlabel('Energy (KeV)');ylabel('Dispersion');set(gca,'XScale',xscale,'YScale',yscale);grid on;box on;title('Dispersion');subplot(2,2,2);% plot(xresult.energy,xresult.absorption,'b-o',...%     'MarkerEdge','r','MarkerSize',0.1);plot(xresult.energy,xresult.absorption);xlabel('Energy (KeV)');ylabel('Absorption');set(gca,'XScale',xscale,'YScale',yscale);grid on;box on;title('Absorption');subplot(2,2,3);% plot(xresult.energy,xresult.criticalAngle,'b-o',...%     'MarkerEdge','r','MarkerSize',0.1);plot(xresult.energy,xresult.criticalAngle);xlabel('Energy (KeV)');ylabel('Critical Angle (degree)');set(gca,'XScale',xscale,'YScale',yscale);grid on;box on;title('Critical Angle');subplot(2,2,4);% plot(xresult.energy,xresult.attLength,'b-o',...%     'MarkerEdge','r','MarkerSize',0.1);plot(xresult.energy,xresult.attLength);xlabel('Energy (KeV)');ylabel('Attenuation Length (m)');set(gca,'XScale',xscale,'YScale',yscale);grid on;box on;title('Attenuation Length');suptitle(['X-Ray Interactions with ',formulaStr,...    ', \rho_{mass}=',num2str(xresult.massDensity),'g/cm^3']);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av在线播放一区二区三区| 99国产精品久久久久久久久久| 国产福利一区二区三区| 欧美综合一区二区三区| 久久久久久**毛片大全| 亚洲电影一区二区三区| 懂色av一区二区三区蜜臀| 欧美人动与zoxxxx乱| 中文字幕不卡的av| 日韩**一区毛片| 一本久久精品一区二区| 国产色综合久久| 久国产精品韩国三级视频| 色婷婷综合久久久久中文一区二区| 2023国产精品| 日本成人在线电影网| 99久久综合狠狠综合久久| 久久免费国产精品| 日韩精品福利网| 欧美色图12p| 一区二区高清免费观看影视大全 | 日韩一区二区在线看| 亚洲最新视频在线观看| 成人激情动漫在线观看| 精品对白一区国产伦| 日韩电影网1区2区| 欧美日韩精品一区视频| 一区二区三区.www| 91首页免费视频| 中文字幕一区二区在线播放| 丰满少妇在线播放bd日韩电影| 久久久www成人免费无遮挡大片| 青青草原综合久久大伊人精品| 欧美另类久久久品| 亚洲一区二区三区四区五区黄| 日本丶国产丶欧美色综合| 亚洲视频图片小说| 色一情一乱一乱一91av| 亚洲欧美中日韩| 一道本成人在线| 夜夜操天天操亚洲| 欧美性生活久久| 性久久久久久久久| 欧美一区二区三区白人| 麻豆精品视频在线观看免费| 日韩欧美一级在线播放| 久久爱www久久做| 精品久久久久久久久久久久久久久久久| 日韩精品一级二级| 欧美一级日韩不卡播放免费| 美女mm1313爽爽久久久蜜臀| 欧美精品一区二区三区蜜桃视频| 国产在线一区二区| 国产精品视频你懂的| 91视频免费观看| 亚洲线精品一区二区三区| 欧美日韩一本到| 蜜臀久久99精品久久久久久9| 久久久久久久综合色一本| www.性欧美| 亚洲一区二区美女| 欧美刺激脚交jootjob| 国产精品一二三区| 亚洲另类春色校园小说| 69p69国产精品| 国产麻豆精品视频| 一区二区三区国产精华| 日韩午夜激情视频| 成人黄色a**站在线观看| 亚洲综合激情小说| 精品国产免费视频| aa级大片欧美| 久久国产尿小便嘘嘘尿| 国产精品女人毛片| 欧美精品久久一区二区三区| 国产麻豆视频一区| 夜夜嗨av一区二区三区网页| 久久午夜电影网| 欧洲生活片亚洲生活在线观看| 激情综合色播五月| 一区二区三区国产精华| 久久久www成人免费无遮挡大片| 色狠狠综合天天综合综合| 久久精品99久久久| 亚洲色图欧洲色图| 久久久久久久久蜜桃| 欧美中文字幕一区二区三区亚洲 | 成人一级黄色片| 毛片av一区二区| 洋洋成人永久网站入口| 中文一区二区在线观看| 91麻豆精品国产自产在线 | 亚洲另类色综合网站| wwww国产精品欧美| 欧美一区二区三区男人的天堂| 91猫先生在线| 成人做爰69片免费看网站| 久久97超碰色| 蜜桃久久av一区| 亚洲国产成人av好男人在线观看| 国产日韩欧美精品电影三级在线| 欧美一区二区人人喊爽| 在线精品观看国产| 99精品视频一区| 丁香一区二区三区| 国产精品一区二区视频| 免费观看在线综合| 秋霞午夜鲁丝一区二区老狼| 亚洲一区二区三区中文字幕| 国产91精品精华液一区二区三区| 欧美亚洲国产一区二区三区| 日本一区二区久久| 亚洲精品久久久久久国产精华液| 欧美不卡一区二区三区| 懂色av一区二区在线播放| 国产伦精品一区二区三区视频青涩| 99精品一区二区三区| 欧美色图片你懂的| 久久精品视频网| 亚洲一区二区三区国产| 国产一区二区三区av电影| 91久久精品网| 国产亚洲精品中文字幕| 亚洲国产日韩在线一区模特| 国产一区二区三区免费播放| 91国偷自产一区二区三区观看| 欧美一级二级三级乱码| 中文字幕制服丝袜一区二区三区| 午夜精品福利视频网站| 国产成人免费av在线| 欧美一区二区三区思思人| 国产精品久久久久国产精品日日| 日韩精品一区第一页| 色域天天综合网| 久久这里只有精品首页| 五月天激情综合网| 99国产精品国产精品久久| 日韩一区二区视频| 一区二区三区四区精品在线视频| 韩国毛片一区二区三区| 91老师国产黑色丝袜在线| 久久久久久久综合| 伦理电影国产精品| 欧美三片在线视频观看| 亚洲国产精品成人综合| 久久精品国产亚洲高清剧情介绍| 在线一区二区视频| 国产人成一区二区三区影院| 蜜桃av噜噜一区二区三区小说| 91久久线看在观草草青青| 亚洲国产成人一区二区三区| 国产在线看一区| 日韩免费福利电影在线观看| 亚洲在线中文字幕| 91在线porny国产在线看| 久久久久高清精品| 激情国产一区二区| 欧美一区二区精美| 免费一区二区视频| 日韩午夜在线观看视频| 奇米亚洲午夜久久精品| 5月丁香婷婷综合| 日韩精品一二区| 欧美日韩中字一区| 亚洲人成网站色在线观看| 国产成人免费高清| 日本一区二区三区电影| 国产精品香蕉一区二区三区| 欧美精品一区二区三区在线| 日韩中文字幕麻豆| 日韩视频一区二区三区在线播放| 午夜精品福利一区二区三区av| 欧美亚洲免费在线一区| 一区二区成人在线视频| 91成人免费电影| 亚洲二区在线视频| 欧美日韩成人高清| 丝袜亚洲另类丝袜在线| 91精品国产综合久久小美女| 日韩不卡一区二区三区 | 一本大道综合伊人精品热热| 亚洲欧洲av一区二区三区久久| av午夜精品一区二区三区| 亚洲综合一二区| 欧美日韩国产免费一区二区 | 久久成人免费网站| 久久久欧美精品sm网站| 成人免费毛片app| 亚洲人成电影网站色mp4| 在线视频你懂得一区二区三区| 亚洲一级在线观看| 欧美日韩精品电影| 免费在线观看一区| 日本一区二区高清| 91精彩视频在线观看| 亚洲在线观看免费| 欧美一区二区三区四区高清| 韩国v欧美v日本v亚洲v| 中国av一区二区三区| 在线亚洲一区二区|