MATLAB Answers

how will i get a mesh in 2d region

3 views (last 30 days)
ekrem yilmaz
ekrem yilmaz on 30 Dec 2019
Answered: darova on 2 Jan 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

  0 Comments

Sign in to comment.

Sign in to answer this question.


Translated by