Linspace par rapport à la plage
Je me demandais quel est le meilleur style /plus efficace:
x = linspace(-1, 1, 100);
ou
x = -1:0.01:1;
source d'informationauteur Samuel
Vous devez vous connecter pour publier un commentaire.
Je me demandais quel est le meilleur style /plus efficace:
x = linspace(-1, 1, 100);
ou
x = -1:0.01:1;
source d'informationauteur Samuel
Vous devez vous connecter pour publier un commentaire.
Comme Oli Charlesworth mentionné, dans
linspace
de la division de l'intervalle de[a,b]
enN
points, tandis qu'avec la:
formulaire, vous l'étape dea
avec une taille de pas (par défaut 1) jusqu'à ce que vous atteignezb
.Une chose à garder à l'esprit est que
linspace
toujours comprend les points de fin, alors que,:
formulaire comprend le deuxième point, que si votre taille est telle qu'il tombe sur elle lors de la dernière étape d'autre, il va tomber à court. Exemple:Cela dit, lorsque j'utilise les deux approches dépend de ce que je dois faire. Si tout ce que je dois faire est d'échantillon, un intervalle avec un nombre fixe de points (et je n'ai pas de soins sur le pas de la taille), j'utilise
linspace
.Dans de nombreux cas, je n'ai pas de soins si elle ne tombe pas sur le dernier point, par exemple, lorsque vous travaillez avec de coordonnée polaire, je n'ai pas besoin de ce dernier point, comme
2*pi
est le même que0
. Là, j'utilise0:0.01:2*pi
.Comme toujours, utiliser celui qui convient le mieux à vos besoins, et qui exprime le mieux à vos intentions. Donc, utiliser
linspace
lorsque vous connaissez le nombre de points; utilisation:
quand vous savez que l'espacement.[D'ailleurs, vos deux exemples ne sont pas équivalentes; la seconde va vous donner 201 points.]
Comme Oli déjà soulignéil est généralement plus simple à utiliser
linspace
quand vous savez que la nombre de points que vous voulez et le colon opérateur quand vous savez que la espacement vous voulez entre les éléments.Toutefois, il convient de noter que les deux vont souvent de ne pas vous donner exactement les mêmes résultats. Comme l'a noté ici et iciles deux approches utilisent légèrement différentes méthodes pour calculer les éléments du vecteur (archivé) description de comment celui-ci fonctionne). C'est pourquoi ces deux vecteurs ne sont pas égaux:
C'est typique d'un effet secondaire de la façon dont les nombres à virgule flottante sont représentés. Certains numéros ne peuvent pas être exactement représentés (comme de 0,1) et en effectuant le même calcul de différentes façons (c'est à dire de changer l'ordre des opérations mathématiques) peut conduire à jamais à des résultats légèrement différents, comme illustré dans l'exemple ci-dessus. Ces différences sont généralement sur le afin de virgule flottante de précisionet peut souvent être ignoré, mais vous devriez toujours être conscients qu'ils existent.