Following is the error while calculating cosine distance
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Balaji M. Sontakke
am 9 Apr. 2019
Kommentiert: Balaji M. Sontakke
am 11 Apr. 2019
Following is the error while calculating cosine distance....
Conversion to cell from double is not possible.
Error in CosineDistance (line 26)
Distance(ctr) = - (ClientMean(i,:)'*EvalSet(j,:))/(norm_x*norm_y);
Error in Evaluation (line 83)
Distance = CosineDistance(ClientMean, EvalSet);
Error in DorsalHandVeinVerification (line 69)
[EvalFAR, EvalFRR, EvalEER, Thr] = Evaluation(TrainSet, gndTrain, EvalSet, gndEval,
options);
function Distance = CosineDistance(ClientMean, EvalSet) % function definition
% Calculate Cosine Distance
%
% Inputs:
% ClientSet ---- c* dim matrix
% EvalSet ---- n*dim matrix
% Outputs:
% Distance ---- c*n matrix
if ~exist('ClientMean','var')
error('Input arguments error.');
end
if ~exist('EvalSet','var')
error('Input arguments error.');
end
[c, d] = size(ClientMean);
[n, dim] = size(EvalSet);
if (d ~= dim)
error('Dimensionality disagreement.');
end
Distance=cell(c,n); % pre-allocate
ctr=1;
for i = 1 : c
for j = 1 : n
norm_x = norm(ClientMean);
norm_y = norm(EvalSet);
Distance(ctr) = - (ClientMean(i,:)'*EvalSet(j,:))/(norm_x*norm_y);
ctr=ctr+1;
end
end
end
0 Kommentare
Akzeptierte Antwort
KSSV
am 9 Apr. 2019
Bearbeitet: KSSV
am 9 Apr. 2019
cell is accessed using flower braces i.e {}. Replace Distance(ctr) with Distance{ctr}.
function Distance = CosineDistance(ClientMean, EvalSet) % function definition
% Calculate Cosine Distance
%
% Inputs:
% ClientSet ---- c* dim matrix
% EvalSet ---- n*dim matrix
% Outputs:
% Distance ---- c*n matrix
if ~exist('ClientMean','var')
error('Input arguments error.');
end
if ~exist('EvalSet','var')
error('Input arguments error.');
end
[c, d] = size(ClientMean);
[n, dim] = size(EvalSet);
if (d ~= dim)
error('Dimensionality disagreement.');
end
Distance=cell(c,n); % pre-allocate
ctr=1;
for i = 1 : c
for j = 1 : n
norm_x = norm(ClientMean);
norm_y = norm(EvalSet);
Distance{ctr} = - (ClientMean(i,:)'*EvalSet(j,:))/(norm_x*norm_y);
ctr=ctr+1;
end
end
end
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu NaNs finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!