moyenne

Bonjour
Si on a deux colonnes de 1600 éléments chacune, on note par a_i les éléments de la première colonne, et b_i les éléments de la deuxième colonne. Est-ce qu'il est possible de calculer, par un programme \sqrt(a_i^2+b_i^2) pour i de 1 à 1600, et qui forme une colonne de 1600 éléments ?
Merci d'avance.

Réponses

  • Bonjour.

    Bien sûr !
    Tu peux même faire ça avec un tableur si tu as dejà les deux colonnes. ça prend 10 secondes.

    Quel rapport avec le titre "moyenne" ??????
  • Bonjour,

    J'espère ne pas être à côté de la plaque mais j'ai envie de répondre "rien qu'avec un tableur, c'est possible".
    Mais peut-être n'ai-je pas compris le problème.

    Remarque : une correction peut-être b_i au lieu de b_n ? Pour plus de clarté.

    [small]Et gerard0 qui dégaine très vite ;-)[/small]
  • euh, c'est peut être une question bête, mais comment utiliser un tableur pour ça? vous parler d'office? :-(
    Merci par avance.
  • Bonne nuit,

    Par exemple en Python:
    import numpy as np
    
    nmax=1600
    M = np.random.rand(nmax,2) 
    print('M=\n',M,'\n')
    N=np.sqrt(M[:,0]**2+M[:,1]**2).reshape(nmax,1)
    print('N=\n',N,'\n')
    M = np.concatenate((M,N), axis = 1)
    print('M=\n',M,'\n')
    

    Cordialement,

    Rescassol
  • Excel ou LibreOffice-Calc

    Rentrer les valeurs a_i dans la colonne A (en partant de la ligne 1)
    Rentrer les valeurs b_i dans la colonne B (idem, ligne 1)
    Rentrer dans la cellule C1 la formule : =sqrt(A1^2+B1^2) (Remplacer éventuellement "sqrt" par "racine")
    Puis copier et coller en C2, puis C3 etc... (Un "étirement" permet de coller rapidement sur "toute" la colonne...)

    Mais quand même, en quelle classe es-tu ?
  • Et bien j'avais essayé la même chose en utilsant excel(enfin, le calc), et il me met toujours erreur, il ne calcul rien. Je n'ai pas réussi à joindre le fichier excell ici, mais voici une capture d'écran qui montre ce que j'ai fait. Avez vous une idée du problème?
    Merci par avance.45909
  • La version française ne comprend pas sqrt, il suffit d'écrire RACINE à la place.

    PS: Scilab fait sûrement ça bien mieux (plus vite, plus précis)
    --> sqrt(s.*s+t.*t)
    
  • j'ai essayé ca aussi, Dom l'avait proposé, et il me revoie #valeur!
    Avez vous une solution à me proposer?
    Merci par avance.
  • On t'a déjà proposé des solutions ! Si tu veux qu'on t'aide à comprendre ce qui ne va pas avec ce que tu as fait il faut nous en dire plus. Une capture d'écran par exemple ?
  • J'ai envoyé une capture d'écran dans mon précédent message!
  • C'est que libre-office ne comprend pas le point (.) comme une virgule décimale et donc il ne considère pas les colonnes A et B comme remplies de nombres. Ainsi, avec « .03e-08 » en A1, la formule
    = A1+1
    
    donne la même erreur, qui disparaît en remplaçant par « 0,03e-08 ».

    Pour éviter de changer tous les nombres, on doit pouvoir déclarer la feuille au format "Anglais (U.S.A.)" (Format -> Cellules -> Nombres).
  • En fait il ne calcul rien du tout, même si je lui demande de calculer A^2 seulement, il m'affiche le même mesage #valeur!
    je suis sous ubuntu, il faut peut être que je télécharge quelque chose?
    Merci par avance.
  • ok Jer Anonyme, je vais essayé
  • Bonjour.

    A priori, sur Open Office, le format est 4,3026E-08 pour la case A1. Si c'est une copie de texte (ce qu'il semble bien, vu la justification à gauche, il va falloir transformer en nombres (à priori avec format cellule; le format actuel étant à priori "texte").

    Cordialement.
  • Pardon, je n'avais pas vu que la capture d'écran venait de toi. Il me semble qu'open office écrit les nombres à droite des cases. S'ils sont à gauche c'est sans doute qu'ils ne sont pas compris comme des nombres, peut-être pour la raison évoquée par Jer Anonyme. Ça marche maintenant ?
  • Jer anonyme, tu dis que Scilab peut faire ce calcul, mais comment lui un grand nombre de données pour qu'il fasse le calcul automatiquement?
    Merci par avance.
  • Le plus simple est de remplacer tous les points par des virgules, ça prend dix secondes ! Tu peux aussi fouiller pour voir où on définit le séparateur pour les décimaux. Peut-être dans les « paramètres régionaux » quelque part... Je ne suis pas familier avec tout ça.
  • Oui, c'est fait, et ca donne les résultats.
    Merci beaucoup pour l'aide.
  • scilab est capable de lire des fichiers textes par exemple.
  • Si les données sont dans un format raisonnablement basique (csv), on peut utiliser csvRead et csvWrite.

    NB : Si dans les données le séparateur est un retour chariot, son code ascii est ascii(10) ou ascii(13). Je viens de vérifier en tapant :
    v = csvRead('.../toto.csv',ascii(10))
    
    (Bien sûr il faut remplacer les points de suspension par le chemin qu'il faut...) (Je viens de faire ces opérations : créer un vecteur, le sauver, le charger sous un autre nom, le comparer au premier -- tout va bien.)
  • Je souhaite maintenant reporter un certain nombre de colonnes sont les éléments ont été calculés sur excell, sur un fichier .csv (par gedit), le problème est qu'il m'est impossible de ranger colonne par colonne en faisant un copier coller: i.e., je copie une première colonne de excell, je fais coller sur gedit, sans problème, je copie maintenant une deuxième colonne de excell, je fait coller sur gedit et là elle se place en dessous de la première colonne, pas à côté.; et lorsque j'essaye d'enregistrer directement au format csv sous exel, 1. les éléments ne sont pas chacun à sa place, 2. j'ai plusieurs colonnes dans différents fichier exell, donc ce n'est évident. Comment faire sans avoir à tout recopier à la main?
    Merci par avance.
  • Désolé, je ne comprends pas le problème : pourquoi la sauvegarde au format csv ne marche-t-elle pas ? Je ne comprends pas « lorsque j'essaye d'enregistrer directement au format csv sous exel, les éléments ne sont pas chacun à sa place ». Ils sont à leur place s'ils sont séparés par une virgule ou un point-virgule.

    Si vraiment le copier-coller était la seule option (je ne comprends pas pourquoi ce serait le cas), il serait possible d'écrire un petit script (par exemple en python) pour lire les deux fichiers et coller la première ligne de l'un à côté de la première ligne de l'autre, etc., dans un troisième fichier.

    (C'est amusant, il y a trois orthographes pour Excel et aucune n'est celle de Microsoft.)
Connectez-vous ou Inscrivez-vous pour répondre.