Noob problem: Defining a fumction and passing values issues an error "Subscript indices must either be real positive integers or logicals."
    9 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
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 commentaires
Réponse acceptée
  Jon
      
 le 21 Sep 2015
        Runs fine on my machine-no errors. 2015a. Do you have a variable named SSD or zeros?
2 commentaires
  Kirby Fears
      
 le 21 Sep 2015
				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.
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Entering Commands dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


