Modify matrix for partial plot
이전 댓글 표시
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
darova
2020년 5월 9일
Calculate two regions separately
Walter Roberson
2020년 5월 9일
Uc = U;
Uc(1:end/2, 1:end/2) = nan;
figure(1);
contour(y, x, Uc);
figure(2)
surf(y, x, Uc, 'edgecolor', 'none')
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)
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
