Functions with 2 variables
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jens Petit-jean
el 17 de Feb. de 2021
Comentada: Walter Roberson
el 21 de Feb. de 2021
How do you make a function (NOT an anonymous function) from this?
"Als" means "if"
Thanks in advance
6 comentarios
Walter Roberson
el 17 de Feb. de 2021
k does not need to be an input for this function. The conditions have to do with x modulo 4: -2 <= mod(x,4) < 0 is the second condition, and 0 <= mod(x,4) < 2 is the first condition.
Walter Roberson
el 19 de Feb. de 2021
Respuesta aceptada
Walter Roberson
el 17 de Feb. de 2021
format long g
mat2str(g(-9:.5:9))
function output = g(x)
k = floor(x/4);
rm = x - 4*k;
mask = rm < 2;
output = zeros(size(x));
output(mask) = 4-2*(rm(mask) - 1).^2;
output(~mask) = 2*(rm(~mask) - 3).^2;
end
7 comentarios
Walter Roberson
el 17 de Feb. de 2021
k is an element of integers.
For any given real finite x, there is exactly one integer k such that 4*k-2 <= x < 4*k+2. If you try to use any other k then both range tests will fail.
Once you know the k that makes the above true, then the two different conditions decide between halves, 4*k-2 <= x < 4*k, or 4*k <= x < 4*k+2
I coded in a slightly tricky way for the second condition: you may need some study to figure it out.
I could have coded a different way overall, finding k based on floor((x+2)/4) . If you do that, make sure you get the boundaries right.
Más respuestas (1)
Asayel Alazmi
el 21 de Feb. de 2021
Write an mfile using for loop to output a all numbers from 1 to 4 with an increment of 0.2
1 comentario
Walter Roberson
el 21 de Feb. de 2021
No, I don't think doing that would help solve the question that the person posted.
Ver también
Categorías
Más información sobre Function Creation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!