?? cylindcat2g.m
字號:
function [x,y]=CylindCat2g(bs,s)%CylindCat2g Gives geometry data for the CylindCat2g PDE model.%% NE=CylindCat2g gives the number of boundary segments%% D=CylindCat2g(BS) gives a matrix with one column for each boundary segment% specified in BS.% Row 1 contains the start parameter value.% Row 2 contains the end parameter value.% Row 3 contains the number of the left-hand regions.% Row 4 contains the number of the right-hand regions.%% [X,Y]=CylindCat2g(BS,S) gives coordinates of boundary points. BS specifies the% boundary segments and S the corresponding parameter values. BS may be% a scalar.nbs=4;if nargin==0, x=nbs; % number of boundary segments returnendd=[ 0 0 0 0 % start parameter value 1 1 1 1 % end parameter value 0 0 0 0 % left hand region 1 1 1 1 % right hand region];bs1=bs(:)';if find(bs1<1 | bs1>nbs), error('Non-existent boundary segment number')endif nargin==1, x=d(:,bs1); returnendx=zeros(size(s));y=zeros(size(s));[m,n]=size(bs);if m==1 & n==1, bs=bs*ones(size(s)); % expand bselseif m~=size(s,1) | n~=size(s,2), error('bs must be scalar or of same size as s');endif ~isempty(s),% boundary segment 1ii=find(bs==1);if length(ii)x(ii)=(1-(0))*(s(ii)-d(1,1))/(d(2,1)-d(1,1))+(0);y(ii)=(1-(1))*(s(ii)-d(1,1))/(d(2,1)-d(1,1))+(1);end% boundary segment 2ii=find(bs==2);if length(ii)x(ii)=(1-(1))*(s(ii)-d(1,2))/(d(2,2)-d(1,2))+(1);y(ii)=(0-(1))*(s(ii)-d(1,2))/(d(2,2)-d(1,2))+(1);end% boundary segment 3ii=find(bs==3);if length(ii)x(ii)=(0-(1))*(s(ii)-d(1,3))/(d(2,3)-d(1,3))+(1);y(ii)=(0-(0))*(s(ii)-d(1,3))/(d(2,3)-d(1,3))+(0);end% boundary segment 4ii=find(bs==4);if length(ii)x(ii)=(0-(0))*(s(ii)-d(1,4))/(d(2,4)-d(1,4))+(0);y(ii)=(1-(0))*(s(ii)-d(1,4))/(d(2,4)-d(1,4))+(0);endend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -