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

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by John on 2 Jul 2012

Hello,

I have set up a Fuzzy logic system which takes 2 inputs and produces one output. To evaluate one set of inputs (1,2) you would use the code

Model = readfis ('tipper'); evalfis([1 2], Model)

My question is, say for example I had a .mat file with 100 pairs of inputs called input.mat. Would I use a function to pass all these inputs into the fuzzy model and produce an output file with the output? Would anybody be able to help with the function (point 3):

Would it be something like this:

1. I would load the fuzzy logic model

Model = readfis ('tipper');

2. Load the inputs - input.mat

3. Pass it into a function

function [input]

evalfis('input', Model);

Thank you

John

*No products are associated with this question.*

Answer by Arkadiy Turevskiy on 2 Jul 2012

Edited by Arkadiy Turevskiy on 2 Jul 2012

Accepted answer

Have you seen the doc page for evalfis, specifically this part:

evalfis has the following arguments:

- Input: a number or a matrix specifying input values. If input is an M-by-N matrix, where N is number of input variables, then evalfis takes each row of input as an input vector and returns the M-by-L matrix to the variable, output, where each row is an output vector and L is the number of output variables.

As the doc says make your input argument a matrix of 100X2, and everything works.

For example:

Model = readfis ('tipper'); U=ones(100,2); U(:,2)=10*rand(size(U(:,2))); Y=evalfis(U, Model);

HTH.

Arkadiy

## 0 Comments