How can I include membership function inside a piece-wise function?

7 views (last 30 days)
I'm trying to graph a piecewise function containing sigmoid membership function, however the result is always returned with dimension mismatch error. Any idea? Thanks.
Here's the code:
x= 0:.1:20;
y(0<=x & x<=10) = sigmf(x,[1 5]);
y(10<x & x<=20) = 1;
plot(x,y)

Answers (1)

Robert U
Robert U on 11 Aug 2017
Hi Kris,
since you are using logical indexing, you must account for different sized vectors you want to write on (in your example the length of y is not the same as x). One possibility is to initialize the vector y by one and overwrite the values y(0<=x & x<=10):
x= 0:.1:20;
y = ones(1,length(x));
y(0<=x & x<=10) = sigmf(x(0<=x & x<=10), [1 5]);
plot(x,y)
Kind regards,
Robert

Categories

Find more on Fuzzy Logic Toolbox in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!