# Modify matrix for partial plot

1 view (last 30 days)
jojo on 9 May 2020
Commented: Walter Roberson on 9 May 2020
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)
Walter Roberson on 9 May 2020
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 on 9 May 2020
Edited: darova on 9 May 2020
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
##### 2 CommentsShowHide 1 older comment
darova on 9 May 2020
I did everything i can

### Categories

Find more on Surface and Mesh Plots in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!