No BSD License  

Highlights from
Several kinds of Mathematical examples!

from Several kinds of Mathematical examples! by Giovani Tonel
Here there are several kinds of Mathematical problems!

mesh06_t(p,e,t);
function [p1,e1,t1] = mesh06_t(p,e,t);
% Eckart Gekeler, Universitaet Stuttgart, Release 20.1.06
% Berechnung der Zwischenpunkte bei Dreiecken
% fuer gerade quadratische Dreieckselemente
% und gerade Randstuecke
% p1      : Zwischenpunkte
% t1(:,I) : Nrn der Zwischenpunkte in t(:,I);
% e1(6,I) : Nr. des Zwischenpunktes in e(:,I);
% e WIRD DURCH EINE ZEILE ZU e1 ERGAENZT!
% Grafik aus/ein (0/1)?
GRAFIK = 0;
M = size(p,2); N = size(e,2); L = size(t,2); MA = 0;
p1 = []; t1 = [];
e1 = [e;zeros(1,size(e,2))];
X = p(1,:); Y = p(2,:); Z1 = zeros(1,M);
if GRAFIK == 1
   clf, hold on, trimesh(t(1:3,:)',X,Y,Z1), hold on
   axis equal 
end
for I = 1:L
   M1 = MA+1; M2 = MA+2; M3 = MA+3;
   t1 = [t1,[M1; M2; M3]];
   J = t(1:3,I);
   ZWP =[(p(:,J(1))+p(:,J(2)))/2, ...
         (p(:,J(2))+p(:,J(3)))/2, ...
         (p(:,J(3))+p(:,J(1)))/2];
   p1 = [p1,ZWP];
   if GRAFIK == 1
      XA = p(1,J); YA = p(2,J);
      fill(XA,YA,'g'), hold on
      plot(ZWP(1,:),ZWP(2,:),'k*'), hold on
      pause(0.1)
   end
   MA = MA + 3;
end
% -- doppelte Zwischenknoten beseitigen ----
[M1,N1] = size(t1);
[p1,I,J] = unique(p1','rows');
p1 = p1'; C = t1(:); D = J(C);
t1 = reshape(D,M1,N1);
% -- Zwischenpunkte fuer Randstuecke -------
p_AUX   = (p(:,e(1,:)) + p(:,e(2,:)))/2;
[C,I,K] = intersect(p_AUX',p1','rows');
e1(6,I) = K;
t1      = t1 + M;
e1(6,:) = e1(6,:) + M;


Contact us at files@mathworks.com