Borrar filtros
Borrar filtros

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

1 visualización (últimos 30 días)
Anna Lin
Anna Lin el 11 de Jun. de 2021
Comentada: Anna Lin el 11 de Jun. de 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

Respuesta aceptada

KSSV
KSSV el 11 de Jun. de 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 comentarios
Steven Lord
Steven Lord el 11 de Jun. de 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 el 11 de Jun. de 2021
Now I get it, thank you so much!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Graphics Performance en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by