evalfis error

3 visualizzazioni (ultimi 30 giorni)
mideas
mideas il 3 Apr 2012
hi.. the fuzzy inference system 'a' takes 3 inputs. function RGB2Lab is already defined. the following is the code in which the FIS has to evaluate the l,a,b values of the image.
z=imread('Lenna.png');
x=readfis('a.fis');
s=imresize(z,[128 128]);
R=s(:,:,1);
G=s(:,:,2);
B=s(:,:,3);
[L,a,b]=RGB2Lab(R,G,B);
[m,n]=size(s);
Ld=double(L);
ad=double(a);
bd=double(b);
for i=1:m
for j=1:n
q=evalfis([Ld ad bd],x);
end
end
the error shown is: Error using ==> evalfis The first argument should have as many columns as input variables and as many rows as independent sets of input values.
Error in ==> ch at 22 q=evalfis([Ld ad bd],x);
can anyone please help me correct it..

Risposta accettata

Walter Roberson
Walter Roberson il 3 Apr 2012
We can tell from your extraction of R, G, and B, that s is a 3 dimensional array. Your code line [m,n] = size(s) makes it look like a 2 dimensional array. There is meaning to that line, but it is not to extract just the first and second dimensions: when you use more than one output argument to size() and the number of output arguments is smaller than the number of dimensions, then the last output argument will be given a value which is the product of all the dimensions from there on.
Your nested "for" loops do not change any parameters in the call to evalfis(), so it is not clear why you are bothering to loop.
After your image resize, s will be 128 x 128 x 3 so [Ld ad bd] is going to be 128 x 384 . Is your fis set up to expect 128 input variables?
  3 Commenti
Walter Roberson
Walter Roberson il 4 Apr 2012
How many input variables does the FIS expect? Is it intended to process column by column perhaps?
We know from the documentation what evalfis() is supposed to do in general, but we do not know what your a.fis contains so we cannot yet advise on how to modify your code.
mideas
mideas il 4 Apr 2012
the FIS takes 3 input variables.

Accedi per commentare.

Più risposte (1)

mideas
mideas il 4 Apr 2012
this is my a.fis
[System]
Name='a'
Type='mamdani'
Version=2.0
NumInputs=3
NumOutputs=1
NumRules=26
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'
[Input1]
Name='L'
Range=[0 100]
NumMFs=3
MF1='black':'trimf',[0 0 40]
MF2='gray':'trimf',[10 50 90]
MF3='white':'trimf',[60 100 100]
[Input2]
Name='a'
Range=[-86.1813 98.2352]
NumMFs=5
MF1='red':'trimf',[-86.2 -86.2 -29.34]
MF2='greenish':'trimf',[1.46365079365083 44.8636507936508 81.4636507936508]
MF3='green':'trimf',[42.8678835978836 98.6878835978836 98.6878835978836]
MF4='reddish':'trimf',[-69.3 -43.0023015873016 0]
MF5='amiddle':'trimf',[-10 0 10]
[Input3]
Name='b'
Range=[-107.8617 94.4758]
NumMFs=5
MF1='blue':'trimf',[-108 -108 -47.13]
MF2='bmiddle':'trimf',[-10 0 10]
MF3='yellow':'trimf',[33.7124603174603 94.5 95]
MF4='bluish':'trimf',[-86.7518253968254 -50 0]
MF5='yellowish':'trimf',[0 50.3097619047619 74.4]
[Output1]
Name='fuzzyhist'
Range=[0 15]
NumMFs=15
MF1='black':'trapmf',[0 0 0.8 1.2]
MF2='blue':'trapmf',[0.83968253968254 1.23968253968254 1.83968253968254 2.23968253968254]
MF3='yellow':'trapmf',[3.8 4.2 4.8 5.2]
MF4='magenta':'trapmf',[4.8 5.2 5.8 6.2]
MF5='gray':'trapmf',[6.8 7.2 7.8 8.2]
MF6='teal':'trapmf',[8.8 9.2 9.8 10.2]
MF7='violet':'trapmf',[9.8 10.2 10.8 11.2]
MF8='pink':'trapmf',[11.8 12.2 12.8 13.2]
MF9='cyan':'trapmf',[13.8 14.2 15 15]
MF10='navy':'trapmf',[1.8 2.2 2.8 3.2]
MF11='red':'trapmf',[2.8 3.2 3.8 4.2]
MF12='brown':'trapmf',[5.8 6.2 6.8 7.2]
MF13='green':'trapmf',[7.8 8.2 8.8 9.2]
MF14='orange':'trapmf',[10.8 11.2 11.8 12.2]
MF15='white':'trapmf',[12.8 13.2 13.8 14.2]
[Rules]
1 5 2, 1 (1) : 1
2 -3 1, 2 (1) : 1
1 0 4, 2 (1) : 1
3 5 4, 2 (1) : 1
3 2 4, 2 (1) : 1
1 4 1, 10 (1) : 1
2 1 -1, 11 (1) : 1
2 4 2, 11 (1) : 1
1 4 5, 11 (1) : 1
2 4 3, 3 (1) : 1
3 5 3, 3 (1) : 1
3 2 3, 3 (1) : 1
2 4 4, 4 (1) : 1
3 4 4, 4 (1) : 1
2 5 5, 12 (1) : 1
3 4 3, 12 (1) : 1
2 5 2, 5 (1) : 1
2 2 3, 13 (1) : 1
3 3 5, 13 (1) : 1
2 2 2, 6 (1) : 1
2 3 1, 7 (1) : 1
3 1 3, 14 (1) : 1
3 4 2, 8 (1) : 1
3 5 2, 15 (1) : 1
3 2 2, 9 (1) : 1
3 3 4, 9 (1) : 1
  5 Commenti
Walter Roberson
Walter Roberson il 4 Apr 2012
After posting I realized I wasn't sure that this was correct. I would need to look further at fis models. Unfortunately that is not something I will have time to do today.
mideas
mideas il 5 Apr 2012
its okay..

Accedi per commentare.

Categorie

Scopri di più su Fuzzy Logic in Simulink in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by