4 svar
66 visningar
Sebbesilva är nöjd med hjälpen
Sebbesilva 45
Postad: 4 apr 16:49

En for-loop för att kasta om ordningen på element i en vektor.

Har jobbat med denna några dagar nu och kommit såhär långt och  får det att fungera, vad tycker ni om följande kod till denna uppgiften?

import numpy as np

v = np.genfromtxt('data.txt')vlen = np.size(v)u = np.ones(vlen)

for i in range(vlen // 2): u[i], u[vlen - i - 1] = v[vlen - i - 1], v[i]

print('Den nya vektorn är [' + str(u) + ']')

Skulle du kunna infoga din kod som programmeringskod, så blir den mycket lättare att läsa?

Sebbesilva 45
Postad: 4 apr 17:04

Ursäkta, ser inte den knappen som du har men såhär typ?

import numpy as np

v = np.genfromtxt('data.txt')

vlen = np.size(v)

u = np.ones(vlen)

for i in range(vlen // 2):

u[i], u[vlen - i - 1] = v[vlen - i - 1], v[i]

print('Den nya vektorn är [' + str(u) + ']')

Laguna Online 28753
Postad: 4 apr 19:34

Får du inte 1 som mittelement i stället för det som borde stå där, om antalet element är udda?

Du vill dela vektorn på mitten och därmed loopa hälften så många gånger gissar jag? 

Eftersom du efterfrågade synpunkter:

Efter decennier i branschen kan jag konstatera att läsbar kod är oslagbar framför försök att trixa till det. Det underlättar för en själv att hitta fel och andra att förstå vad den gör. Din kod fungerar inte för udda antal element och det är inte så lätt att se varför.

Eftersom uppgiften inte tillåter att man använder sig av de många inbyggda funktioner som finns för vända på en vektor, skulle jag inte krångla till det:

import numpy as np

v = np.array([3,5,2,7,8])
vlen = np.size(v)
u = np.ones(vlen)

for i in range(vlen):
    u[i]=v[vlen-i-1]

print('Den nya vektorn är [' + str(u) + ']')
Svara Avbryt
Close