human
Que sont les tableaux, les vecteurs et les matrices ? Je viens de commencer à apprendre MatLab et j'entends sans cesse ces termes utilisés, mais je ne sais pas ce qu'ils sont ni comment ils sont liés les uns aux autres. S'il vous plaît, expliquez-moi comme si j'avais cinq ans.
gpt
En ce qui concerne la programmation : Un tableau est un moyen de regrouper plusieurs valeurs du même type. Pensez à une grille (comme du papier quadrillé). Mettez un nombre dans chaque cellule. C'est un tableau 2D de nombres (une dimension est verticale, l'autre est horizontale). Vous pouvez identifier chaque valeur par son emplacement sur la grille (ses coordonnées x et y). Vous pouvez également identifier des blocs de valeurs en spécifiant une plage de valeurs x et y . Vous pouvez avoir plus de dimensions que cela. Un tableau 3D ressemblerait à un Rubik's cube, avec chaque petit cube contenant une seule valeur (chaque cube, pas un carré, ce serait donc 27 valeurs). Vous pouvez également avoir moins de dimensions . Un tableau à une seule dimension est appelé un vecteur. Une ligne de texte n'est qu'un vecteur de lettres, par exemple. Et une valeur de dimensions nulles est un scalaire. Un nombre unique est un scalaire. A un niveau plus bas , ces tableaux sont stockés dans un seul grand bloc de mémoire , dans la même disposition qu'ils vous apparaissent lorsque vous les visualisez ( lorsqu'il y a plus d' une dimension , le tableau est " aplati " en un vecteur , avec des informations stockées séparément sur la forme ) . Cela permet aux ordinateurs modernes d'effectuer une calculatrice très rapidement sur l'ensemble du bloc de valeurs à la fois, ce qui est beaucoup, beaucoup plus rapide que de le faire une par une. Ce processus est appelé « vectorisation ». Supposons donc que vous additionniez deux tableaux de même forme. Cela additionne chaque valeur correspondante dans les deux tableaux. L'ordinateur effectuera l'opération d'addition sur l'ensemble des blocs de mémoire en une seule fois, plutôt que d'ajouter une paire de valeurs puis de passer à la suivante. C'est ce qu'on appelle une « opération élément par élément ». Mais quelque chose comme additionner toutes les valeurs est également plus rapide. C'est là qu'intervient la différence avec les matrices. Les matrices sont une structure mathématique qui ressemble beaucoup aux tableaux. Il existe deux différences majeures. Premièrement, les matrices ne peuvent pas avoir moins de deux dimensions. Deuxièmement, les opérations mathématiques sur alors ne sont généralement pas élément par élément. Une explication des mathématiques matricielles sort du cadre de ce sous-chapitre, mais elles ont des propriétés très utiles pour de nombreuses opérations mathématiques plus avancées. Ces calculs matriciels peuvent également être fortement accélérés par les ordinateurs modernes. En fait, les matrices ne sont en fait que des tableaux qui effectuent des calculs matriciels par défaut et ont été arbitrairement limités à avoir au moins 2 dimensions. Mais les matrices et les tableaux sont vraiment la même chose en ce qui concerne l'ordinateur, donc les matrices peuvent faire des opérations élément par élément et les tableaux peuvent faire des opérations matricielles. C'est vraiment une décision du langage de programmation (ou lundi) comment il veut que les mathématiques fonctionnent. Maintenant, j'ai mentionné que les tableaux (et par extension, les matrices). Peut contenir des valeurs de différents types . Pour les maths, ce sont généralement des nombres. Mais il peut aussi s'agir de lettres (c'est ce qu'est un texte), de valeurs de couleur (c'est ce qu'est une image), voire de références à d'autres valeurs stockées ailleurs en mémoire (essentiellement l'adresse où vous pouvez trouver une autre valeur). Les valeurs des tableaux doivent toutes avoir le même type, mais en utilisant de telles références, vous pouvez simuler un tableau de plusieurs types (même d'autres tableaux). L'inconvénient est que vous perdez les opérations très rapides (parce que les valeurs qui vous intéressent ne sont plus dans un seul bloc de mémoire). MATLAB appelle ces « tableaux de cellules ». MATLAB signifie «laboratoire matriciel». C'est vraiment un langage construit autour de la matrice. Tout, et je veux dire tout (y compris le texte), était une matrice (ils ont récemment ajouté quelques types non matriciels). Cela signifie que les mathématiques sont des mathématiques matricielles par défaut, bien que des opérations élément par élément soient possibles. Cela facilite de nombreux calculs mathématiques, scientifiques et techniques avancés. Cela signifie également que toutes les structures de données doivent avoir au moins deux dimensions. Cela signifie que MATLAB n'a pas de vrais vecteurs ou scalaires. Il essaie de simuler cela en traitant généralement , mais pas toujours , une matrice 2D où une dimension a une longueur de 1 comme un vecteur , et généralement , mais pas toujours , en traitant une matrice 2D où les deux dimensions ont une longueur de 1 comme des scalaires . Donc MATLAB parle de " vecteurs ligne " , où la dimension verticale a une longueur de 1 , et de " vecteurs colonne " , où la dimension horizontale a une longueur de 1 , mais le concept de " vertical " et " horizontal " sont des concepts 2D et n'ont donc aucune signification pour les vecteurs "réels". Cela peut faire trébucher les gens lorsqu'ils apprennent MATLAB puis essaient d'utiliser un autre langage qui a des vecteurs et des scalaires (la plupart des autres langages modernes ont des vecteurs et des scalaires).