Code covered by the BSD License

# ISUNIQ

10 Jul 2012 (Updated 11 Jul 2012)

function isuniq(array)

value=isuniq(array);
```function value=isuniq(array);                                               %----------Programmed by: ABHINAVA KUNDU-----------%
% FUNCTION isuniq(aaray)
% Format: value=isuniq(array)
% Checks whether a vector named 'array' has unique/distinct elements or not.
% It returns a value of either '1' or '0' depending upon the nature of the
% vector 'array'. If 'array' has all distinct elements, then the value '1'
% is returned else a '0' is returned. The vector can be 1 or 2-dimensional.

%Start of checking
value=1;                                                                    %'Value' stores the status of uniqueness; i.e.; it is '1' for TRUE uniqueness else it's '0'
[m n]=size(array);                                                          %The size of the vector 'array'; 'm'-Rows by 'n'-Columns

if(n==1 || m==1)                                                            %If the vector is 1-Dimensional
if(~isequal((size(array)-size(unique(array))),[0 0]))                   %Comparing the size of the vector with the result of 'unique' function on the vector
value=0;                                                            %The sizes are different and hence their difference is not [0 0]
end
end

if(n>1 && m>1)                                                              %If the vector is 2-Dimensional
for j=1:n,                                                              %For Row-wise checking of uniqueness for each element
for i=1:m,
mat=array;                                                      %'mat' is a temporary array on which the operations are carried out
for k=1:m,
mat(k,j)=array(i,j);
if(~isequal((size(mat(k,:))-size(unique(mat(k,:)))),[0 0]))
value=0;                                                %If 2 elements are found to be same, value is set to '0'
break;
end
end
end
end

for i=1:n,                                                              %For Column-wise checking of uniqueness for each element after the row checking is done
if(~isequal((size(array(:,i))-size(unique(array(:,i)))),[0 0]))
value=0;                                                         %If 2 elements are found to be same, value is set to '0'
break;
end
end
end
%Checking done; Return result```