Modify matrix for partial plot
1 次查看(过去 30 天)
显示 更早的评论
How can I modify the for loops to create a bracket-shaped domain? In otherwords, I would like to plot everything and omit the first quadrant. Thank you!
clear; close all; clc
n = 40;
x = linspace(0,8,n); dx = x(2)-x(1); y = x; dy = dx;
U = zeros(n);
U(n,1:n/2) =10;
U(n/2,n/2:n-1) =0;
U(1,1:n-1) = 10;
U(2:n,n/2) = 0;
U(1:n/2,n) = 7;
U(n/2:n,n/2) = 0;
alpha=1;
ddt = 1/(4*(1/dx^2+1/dy^2));
for w=1:1000
V = U;
for i = 2:n/2-1
for j = 2:n-1
U(i,j) =ddt*((V(i+1,j)-2*V(i,j)+V(i-1,j))/dx^2+ (V(i,j+1)-V(i,j)+V(i,j-1))/dy^2)+ V(i,j);
end
end
end
figure(1)
contour(y,x,U)
figure(2)
surf(y,x,U)
5 个评论
Walter Roberson
2020-5-9
surf(y, x, Uc)
The 'edgecolor', 'none' just controls drawing the edges of each face. When you have many faces, the edges start to take over the visual impression, because the edges are constant width even when the faces get small.
Walter Roberson
2020-5-9
x and y are both increasing, and you are using x for rows and y for columns. Which is the "first quadrant" ?
(x=0,y=0) (x=0,y=4) (x=0,y=8)
A B
(x=4,y=0) (x=4,y=4) (x=4,y=8)
C D
(x=8,y=0) (x=8,y=4) (x=8,y=8)
采纳的回答
darova
2020-5-9
编辑:darova
2020-5-9
Here are your bourndary conditions
n = 40;
x = linspace(0,8,n); dx = x(2)-x(1); y = x; dy = dx;
U = zeros(n);
U(n,1:n/2) =10;
U(n/2,n/2:n-1) =0+10;
U(1,1:n-1) = 10;
U(2:n,n/2) = 0+10;
U(1:n/2,n) = 7+3;
U(n/2:n,n/2) = 0+10;
alpha=1;
ddt = 1/(4*(1/dx^2+1/dy^2));
h = imagesc(U);
view(2)
Something is missing
I made some changes to your script. It still doesn't work
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Contour Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!