how will i get a mesh in 2d region

4 views (last 30 days)
ekrem yilmaz
ekrem yilmaz on 30 Dec 2019
Commented: Aman Jaiswal on 21 Sep 2020
Hi community,
I need to create a mesh data like in this image, mesh will be cartesian mesh in rectangular part and polar mesh in circular part, how can i do it in matlab?
Any help will be appreciated, thanks.
  2 Comments
darova
darova on 1 Jan 2020
Did you try create circular and rectangular part in cartesian system? And then just concantenate matrices?
What have you tried?
ekrem yilmaz
ekrem yilmaz on 1 Jan 2020
Hi darova,
I tried to create a coeff. matrix but i couldn't get it since i m new to matlab
As you said, i need to concatenate rectangular grid's coeff. matrix and circular grid's coeff. matrix to get whole system's coeff. matrix so i think i can solve my problem (it is a heat conduction problem).

Sign in to comment.

Answers (1)

darova
darova on 2 Jan 2020
I tried to simplify the task (plain rectangle instead of ellipse(cylinder))
Here is what i got
clc,clear
data = load('simple.txt.');
x = data(:,1);
y = data(:,2);
z = data(:,3);
dx = diff(x);
dy = diff(y);
dL = hypot(dx,dy);
[X,Y] = meshgrid([-1 1]);
cla
plot3(x,y,z,'-')
axis equal
hold on
for i = 1:length(x)-1 -4000 % too much rectangles
X1 = X/2; % rectangle width is 1
Y1 = Y*dL(i)/2; % rectangle height is dL
% rotation matrix
R = [dx(i) -dy(i); dy(i) dx(i)]/dL(i);
V = R*[Y1(:) X1(:)]';
X1 = reshape(V(1,:),[2 2])+x(i)+dx(i)/2;
Y1 = reshape(V(2,:),[2 2])+y(i)+dy(i)/2;
Z = [z(i) z(i); z(i+1) z(i+1)];
surf(X1,Y1,Z)
% pause(0.5)
end
hold off
  1 Comment
Aman Jaiswal
Aman Jaiswal on 21 Sep 2020
what is simple.txt has in it? can you upload it here.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!