Index exceeds matrix dimensions.
Show older comments
bonjour, je suis entrain de tester un algorithme pour la protection des données biométriques.
cece est mon code
Quand je fais appel à la fonction qui me donne ceci: L'index dépasse les dimensions de la matrice.
Erreur dans im (ligne 50)
si (BioCodeALL (:, q)> seuil)
Erreur dans premierresultatsbiohas (ligne 2)
[biocode, matrice] = im (I1,0.3);
I1 = double (imread ( 'I100_S8.tif' ))
[biocode, matrice] = im (I1,0.3);
biocode
fonction [BioCode, V] = im (fingercode, seuil)
% x = 6 * rand (1,8);
% I1 = double (imread ('I100_S8.tif'));
% [m, n] = taille (I1)
% n * m
% I1 (:);
[nbr_ligne, nbr_colonne] = taille (code numérique)
% t = remodeler (I1,1, []);
% nbr_deligne = longueur (t)
clé = 123;
A = clé * rand (nbr_colonne, 3);
% [m, n] = taille (A);
m = nbr_colonne;
n = 3;
%% test hypersphère
% r = 100;
% rng (plancher (somme (somme (A))));
% vector_on_hypersphere = r * randn (n, 1);
%
% pour i = 1: n
% A (:, i) = (100 * A (:, i) - (vector_on_hypersphere (i) + barycentre '));
% fin;
%
%
hypershere
BioCode = zéros (n, 3);
V = zéros (m, n);
R = zéros (n, n);
% Processus de Gram-Schmidt
pour k = 1: n
V (:, k) = A (:, k);
pour j = 1: k-1
R (j, k) = V (:, j) '* A (:, k);
V (:, k) = V (:, k) - R (j, k) * V (:, j);
fin
R (k, k) = norme (V (:, k));
V (:, k) = V (:, k) / R (k, k);
fin
V
taille (V)
BioCodeALL = fingercode * V;
BioCodeALL
BioCodeALL = BioCodeALL (:)
longeurbiocode = length (BioCodeALL)
pour q = 1: longeurbiocode
si (BioCodeALL (:, q)> seuil)
BioCode (q) = 1;
fin
fin
3 Comments
Torsten
on 25 Apr 2019
You try to access "BioCodeALL (:, q)".
But "BioCodeALL" is a row vector, thus only has 1 dimension.
malick ndiaye
on 25 Apr 2019
Answers (0)
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!