Maison >Problème commun >L'index du tableau doit être un entier positif ou une valeur logique
Lorsque MATLAB indexe un tableau, cette erreur se produit si une valeur d'index qui n'est pas un entier positif ou une valeur logique est utilisée.
Voici quelques suggestions permettant de provoquer cette erreur : ) Vérifiez à nouveau que la valeur de l'index est un entier positif. L'index dans MATLAB ne peut pas être 0 et commence généralement à 1. 2) Si vous utilisez un index de variable logique, veuillez vous assurer que le type de tableau d'index est une variable logique, et non un double tableau composé de 1 et 0. Vous pouvez également convertir le double tableau en tableau logique avant l'indexation.
Par exemple :A = [1 2 3 4; 5 6 7 8]; ind_double = [0 1 0 1; 0 1 0 1]; ind_logical = logical(ind_double); A(ind_logical)
Pour le tableau d'index, vous pouvez vérifier le type de données via la fonction whos, par exemple : whos ind_double
whos ind_logical
3) Si vous utilisez l'arithmétique à virgule flottante pour Lors du calcul de tableaux indexés, les valeurs du tableau peuvent ne pas être d'une précision entière. Si vous savez que la valeur de l'index est très proche d'un entier, vous pouvez utiliser la fonction round, par exemple :
A = [1 2 3 4; 5 6 7 8]; ind_float = 2.00001; ind_int = round(ind_float); A(ind_float)
4) Lorsqu'une variable portant le même nom qu'une fonction intégrée MATLAB est définie, la fonction sera écrasée, ce qui entraînera le même rapport d'erreur (les paramètres et l'index du tableau de la fonction appelante utilisent les mêmes crochets), par exemple :
max = rand(5); A = rand(5); max(A)
À ce moment, vous devez attribuer un autre nom de variable et effacez le nom de variable en conflit :
B = max; clear max max(A)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!