anonymous, piecewise-defined function that has NaN as response for a certain subdomain
3 次查看(过去 30 天)
显示 更早的评论
I want to make an Matlab anonymous, piecewise-defined function that has NaN as response for a certain subdomain, but I am uncertain how to do this.
For an anonymous, piecewise-defined function without NaN response like this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1112990/image.jpeg)
I would use a script like this:
g=@(x) (x) .* (x<=-1)+...
(x+1) .* (x>-1 & x<1)+...
(-x+4) .* (x>=1);
I would apriciate if someone would give me a tip how to include a subdomain that has NaN as response in my anonymous function, let say g(x)=NaN for 2<x<=4. I do not have access to any relevant toolboxes.
0 个评论
采纳的回答
Walter Roberson
2022-8-31
... + 0./~(2<x & x<=4)
If the value is not in the range then the basic logic test returns false and ~ that is true which is 1 and 0./1 is 0 so 0 would be added which would have no effect.
If the value is in the range then the basic logic test returns true and ~ returns false which is 0 and 0./0 is nan.
更多回答(1 个)
Torsten
2022-8-31
g=@(x) (x) .* (x<=-1)+...
(x+1) .* (x>-1 & x<1)+...
(-x+4) .* (x>=1);
x = [-2,0,1.5,2.5,5];
gx = g(x);
gx(x>2 & x<=4)=NaN
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Monte Carlo Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!