Filter löschen
Filter löschen

If statement to target certain area of f(i,j)?

1 Ansicht (letzte 30 Tage)
Anna Lin
Anna Lin am 11 Jun. 2021
Kommentiert: Anna Lin am 11 Jun. 2021
Assume I have a function of F(i,j) in grid points,
Am i typing my if statement correctly to target the 2 areas shown above? MATLAB console has not shown any error so far. Thanks in advance.
% Subroutine
function k=X(x,y,dx)
if (x <=5 & y <=2) & (x >= 10 & y >= 10)
constant = 85; % beta
else
constant = 100; % alpha
end
k=constant*dx;
end

Akzeptierte Antwort

KSSV
KSSV am 11 Jun. 2021
% Subroutine
function k=X(x,y,dx)
if (x <=5 && y <=2) || (x >= 10 && y >= 10)
constant = 85; % beta
else
constant = 100; % alpha
end
k=constant*dx;
end
  3 Kommentare
Steven Lord
Steven Lord am 11 Jun. 2021
% if (x <=5 & y <=2) & (x >= 10 & y >= 10)
Is the if condition satisfied for x = 3 and y = 1?
x = 3;
y = 1;
condition = (x <=5 & y <=2) & (x >= 10 & y >= 10)
condition = logical
0
Why is this false when the point is in the left box in your diagram?
inLeftBox = (x <=5 & y <=2)
inLeftBox = logical
1
inRightBox = (x >= 10 & y >= 10)
inRightBox = logical
0
The first condition is true but the second is false and:
true & false % false
ans = logical
0
In fact this if statement's condition cannot be satisfied. Can you think of an x coordinate that is simultaneously less than or equal to 5 and greater than or equal to 10? Or to put it another way, point out a point in your diagram that's in both the beta boxes.
How about the second if statement?
% if (x <=5 & y <=2) | (x >= 10 & y >= 10)
condition2 = (x <=5 & y <=2) | (x >= 10 & y >= 10)
condition2 = logical
1
true | false
ans = logical
1
Anna Lin
Anna Lin am 11 Jun. 2021
Now I get it, thank you so much!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Performance finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by