MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# What correction need in this..? for fuzzy

Asked by Lalit Patil on 24 Jan 2013
``` function out = Tanvismembershipfunction(x, params)
for i=1:length(x)
if x(i)<params(1)
y(i)= 2 * abs(x(i) - 0.5);
elseif x(i)<params(2)
y(i)= 2 * abs(x(i) - 0.5);
else x(i)<params(3)
y(i)= 2 * abs(x(i) - 0.5);
end
out=.1*y'; % scaling the output to lie between 0 and 1```

## Products

No products are associated with this question.

Answer by Walter Roberson on 24 Jan 2013

There is no way to get that graph by just altering the params() values in that code.

```y = 2 * abs(x - 0.5)
```

Lalit Patil on 24 Jan 2013

In my plot should be 3points..

In sequence at 1,0,1 on y-axis..

But i am getting like 0.1 0 0.1

I given parameters [0 0.5 1]

Range [0 1] , dispay range [0 1]

and i modified the code above..

Walter Roberson on 24 Jan 2013

Change the 2 to 20 if you insist on using that function structure

Answer by Jing on 24 Jan 2013

If you want to use it in a fuzzy logic/control problem, TRAPMF or TRIMF can easily create the function like that.

```x=0:0.1:1;
y=1-trimf(x,[0 0.5 1]);
plot(x,y)
```

## 1 Comment

Lalit Patil on 24 Jan 2013

sorry, but i want to create the same thing without function...

``` x = 0:0.1:1
for i=1:length(x)
if x(i)<params(1)
y(i)= 2 * abs(x(i) - 0.5);
elseif x(i)<params(2)
y(i)= 2 * abs(x(i) - 0.5);
else x(i)<params(3)
y(i)= 2 * abs(x(i) - 0.5);
end
end
out=.1*y';
plot(x,out)```

This works well in command window but not in fuzzy GUI... problem is mensioned in aboves answer..