2015-07-21 68 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

這是正確的答案。 –