2015-07-21 87 views
1

我在MATLAB中编写一个脚本,显示给定原始图像的前后图像以及经过对数运算符点变换的图像。我试过调试程序来看看它有什么问题,但由于某种原因,它没有在MATLAB中运行。我不断收到命令行上的错误(对数,运营商是脚本的名称):MATLAB - 对数运算符错误

enter image description here

这里是脚本:

a = imread('cells.png'); 
ad = im2double(a); 
x = ad; 

[r, c] = size(ad); 
factor = 1; 

for i = 1:r 
    for j = 1:c 
     x(i, j) = factor *log(1+ ad(i,j)); 
    end 
end 

subplot(1,2,1);imshow(ad);title('Before'); 

subplot(1,2,2);imshow(x);title('After'); 
+2

该代码不会抛出您显示的错误。该代码中没有称为“对数”的变量。 –

+0

它会保存在名为'logorithm-operator.m'的文件中并从命令行调用。 – craigim

回答

6

MATLAB脚本或函数名称不能含有连字符;只允许使用字母,数字或下划线,并且必须以字母开头。你的脚本中的连字符混淆了Matlab,并使其认为logarithm是它应该调用的函数/脚本的名称。

这些与变量名称的要求相同。你可以看看the documentation for isvarname

一个有效的变量名是由字母,数字和下划线 的字符串,共计不超过namelengthmax字符和 以字母开头。

1

您必须将您的脚本名称从logarithm-operator更改为logarithm_operator。因为matlab中的变量,脚本,函数等的名称不包含符号:连字符-

+1

这是正确的答案。 –