Functions with 2 variables
2 次查看(过去 30 天)
显示 更早的评论
How do you make a function (NOT an anonymous function) from this?
"Als" means "if"
Thanks in advance
6 个评论
Walter Roberson
2021-2-17
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
2021-2-19
采纳的回答
Walter Roberson
2021-2-17
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 个评论
Walter Roberson
2021-2-17
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.
更多回答(1 个)
Asayel Alazmi
2021-2-21
Write an mfile using for loop to output a all numbers from 1 to 4 with an increment of 0.2
1 个评论
Walter Roberson
2021-2-21
No, I don't think doing that would help solve the question that the person posted.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Function Creation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!