MATLAB Answers

0

Noob problem: Defining a fumction and passing values issues an error "Subscript indices must either be real positive integers or logicals."

Asked by Veselin Ivanov on 21 Sep 2015
Latest activity Commented on by Veselin Ivanov on 21 Sep 2015
I have the following function:
function [ result ] = SSD( i1, i2 )
if size(i1) == size(i2)
[r, c] = size(i1)
result = -(sum(sum((double(i1) - double(i2)).^2)) / (r*c));
else
result = 'invalid';
end
I would like to pass it to images that contain gray values only and the error:
Subscript indices must either be real positive integers or logicals.
Popes up. For debugging purpuse I tried calling the function in this way:
SSD(zeros(3), ones(3));
The error is still there. But if I call the function in this way:
SSD(ones(3), ones(3));
No error. What is happening? Why doesn't the function like zero values?

  0 Comments

Sign in to comment.

Tags

1 Answer

Answer by Jon
on 21 Sep 2015
 Accepted Answer

Runs fine on my machine-no errors. 2015a. Do you have a variable named SSD or zeros?

  2 Comments

Try clearing your workspace before calling SSD.
clear;
SSD(zeros(3), ones(3));
If this works, you probably had a variable named zeros in your workspace.
Aaaa. Thanks :). I cleaned the workspace and now it worked. I have to get used to that old variables hang around :).

Sign in to comment.