anonymous, piecewise-defined function that has NaN as response for a certain subdomain
조회 수: 9 (최근 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:
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!