Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 你如何解决;未定义的函数或变量';mamfis'&引用;?_Matlab_Machine Learning_Ocr_Edge Detection_Fuzzy Logic - Fatal编程技术网

Matlab 你如何解决;未定义的函数或变量';mamfis'&引用;?

Matlab 你如何解决;未定义的函数或变量';mamfis'&引用;?,matlab,machine-learning,ocr,edge-detection,fuzzy-logic,Matlab,Machine Learning,Ocr,Edge Detection,Fuzzy Logic,我在MatlabR2016A上做边缘检测,但我有一个错误我不明白。在某个地方,我看到这个问题发生在r2015a中,这就是我升级到r2016a的原因,但我遇到了同样的问题: 未定义的函数或变量“mamfis” 此外,我还遇到了以下错误: 错误:文件:edge.m行:48列:6 输入字符在MATLAB语句或表达式中无效 第一个问题,该函数来自模糊逻辑工具箱,因此需要安装该工具箱才能使用它。它在核心MATLAB中不存在 第二个问题,直到MATLAB版本R2017a才添加使用双引号(“)进行定义。您需要

我在MatlabR2016A上做边缘检测,但我有一个错误我不明白。在某个地方,我看到这个问题发生在r2015a中,这就是我升级到r2016a的原因,但我遇到了同样的问题:

未定义的函数或变量“mamfis”

此外,我还遇到了以下错误:

错误:文件:edge.m行:48列:6
输入字符在MATLAB语句或表达式中无效

第一个问题,该函数来自模糊逻辑工具箱,因此需要安装该工具箱才能使用它。它在核心MATLAB中不存在


第二个问题,直到MATLAB版本R2017a才添加使用双引号(
)进行定义。您需要使用单引号(
)定义字符数组.

r2016a的发行说明中是否提到修复您试图从r2015a中逃逸的错误?新版本的软件通常不会修复上一版本的所有问题。升级时,建议升级到最新版本,而不是落后8个版本的版本。我现在明白了,让我检查一下如果是为了我
Irgb = imread('IMG_1769.png');
Igray = rgb2gray(Irgb);

figure
image(Igray,'CDataMapping','scaled')
colormap('gray')
title('Input Image in Grayscale')
I = im2double(Igray);
Gx = [-1 1];
Gy = Gx';
Ix = conv2(I,Gx,'same');
Iy = conv2(I,Gy,'same');
figure
image(Ix,'CDataMapping','scaled')
colormap('gray')
title('Ix')
figure
image(Iy,'CDataMapping','scaled')
colormap('gray')
title('Iy')
% edgeFIS=mamfis;
edgeFIS = mamfis('Name','edgeDetection');
edgeFIS = addInput(edgeFIS,[-1 1],'Name','Ix');
edgeFIS = addInput(edgeFIS,[-1 1],'Name','Iy');
sx = 0.1;
sy = 0.1;
edgeFIS = addMF(edgeFIS,'Ix','gaussmf',[sx 0],'Name','zero');
edgeFIS = addMF(edgeFIS,'Iy','gaussmf',[sy 0],'Name','zero');
edgeFIS = addOutput(edgeFIS,[0 1],'Name','Iout');
wa = 0.1;
wb = 1;
wc = 1;
ba = 0;
bb = 0;
bc = 0.7;
edgeFIS = addMF(edgeFIS,'Iout','trimf',[wa wb wc],'Name','white');
edgeFIS = addMF(edgeFIS,'Iout','trimf',[ba bb bc],'Name','black');
figure
subplot(2,2,1)
plotmf(edgeFIS,'input',1)
title('Ix')
subplot(2,2,2)
plotmf(edgeFIS,'input',2)
title('Iy')
subplot(2,2,[3 4])
plotmf(edgeFIS,'output',1)
title('Iout')
r1 = "If Ix is zero and Iy is zero then Iout is white";
r2 = "If Ix is not zero or Iy is not zero then Iout is black";
edgeFIS = addRule(edgeFIS,[r1 r2]);
edgeFIS.Rules

Ieval = zeros(size(I));
for ii = 1:size(I,1)
    Ieval(ii,:) = evalfis(edgeFIS,[(Ix(ii,:));(Iy(ii,:))]');
end

figure
image(I,'CDataMapping','scaled')
colormap('gray')
title('Original Grayscale Image')

figure
image(Ieval,'CDataMapping','scaled')
colormap('gray')
title('Edge Detection Using Fuzzy Logic')