Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  2 2297
Hei! Jeg holder på å lage en kode, hvor jeg tar hver og trekker fra distansene i distanse matrixen, og får deretter en ny matrise med resterende lengde tilgjengelig av bilen, dette funker utmerket.

koden:

Kode

City =     ['city1',       'city2',     'city3',      'city4',       'city5',  'city6',       'city7',      'city8' , 'city9', 'city10',   'city11','city12', 'city13',      'city14',        'city15',        'city16',    'city17', 'city18', 'city19',     'city20]
distances = [[0,             3.4,         4.5,           4,           5,       12.2,           5.4,          6.1,       5.7,     10.6,      12.8,    7.7,       7.4,           5,               12.4,             12.6,       8.7,      4.2,      3.8,         1.9],
            [3.4,            0,           2.2,           2.4,         4.3,     10.1,           2.8,          4.7,       4.5,     9.4,       11.6,    9.4,       9.4,           7.6,             14.6,             11.9,       8.7,      4.3,      4.5,         1.7],
            [4.5,            2.1,         0,             1.6,         4.5,     6.8,            1.6,          3.1,       3.8,     8.7,       11,      8.5,       9,             9.4,             17.2,             10.9,       8.1,      3.8,      4.8,         3.4],
            [4.1,            2,           1.6,           0,           2.7,     6.3,            1.6,          4.6,       5,       9.9,       12.1,    9.2,       9.4,           8.3,             15.9,             8.8,        9.3,      4.9,      5.2,          2.3],
            [5.1,            4.2,         4.5,           2.7,         0,       5.5,            3.5,          9.3,       7.5,     12.4,      14.7,    14.8,      12,            9.6,             15.8,             6.3,        11.8,     7.5,      7.8,          3.3],
            [12.2,          10.1,         6.8,            6.3,         5.5,     0,              5.7,         10.7,      12,      17,        19.2,    17,        17.2,          14.5,            21.9,             4.1,        16.3,     12,       14.3,         8.1],
            [5.4,            3.4,         1.6,           1.6,         3.5,     5.7,            0,            5.5,       5.8,     10.7,      12.9,    10.8,      10.2,          9.6,             17.2,             9,          10,       5.7,      6,           3.8],
            [6.1,            4.7,         3.1,           4.6,         9.3,     10.7,           5.5,          0,         4.1,     9.1,       11.3,    8.8,       10.9,          11.3,            20.8,             13.9,       8.4,      4.1,      6.4,          5.9],
            [5.7,            4.5,         3.8,           5,           7.5,     12,             5.8,          4.1,       0,       5.4,       7.7,     5.8,       9.4,           10.3,            17.2,             15.3,       4.8,      2.5,      5.3,          5.9],
            [10.6,           9.4,         8.7,           9.9,         12.4,    17,             10.7,         9.1,       5.4,       0,       2.6,     5.2,       10.2,          14.2,            20.5,             19.8,       4.1,      7.3,      9.1,          10.4],
            [ 12.8,          11.6,        11,            12.1,        14.7,    19.2,           12.9,         11.3,      7.7,     2.6,       0,       8.6,       13.6,          17.2,            23.6,             22.4,       6.7,      10.7,     11.9,         13],
            [ 7.7,           9.,          8.5,           9.2,         14.8,    17,             10.8,         8.8,       5.8,     5.2,       8.6,     0,         6.6,           9.9,             17.4,             19.8,       2.3,      5,        6,            9],
            [7.4,            9.4,         9,             9.4,         12,      17.2,           10.2,         10.9,      9.4,     10.2,      13.6,    6.6,       0,             5.1,             9.8,              17.8,       7.9,      6.6,      5.3,          9.5],
            [5,              7.6,         9.4,           8.3,         9.6,     14.5,           9.6,          11.3,      10.3,    14.2,      17.2,    9.9,       5.1,           0,               8.3,              13.9,       12.1,     8.2,      7.1,          5.7],
            [12.4,           14.6,        17.2,          15.9,        15.8,    21.9,           17.2,         20.8,      17.2,    20.5,      23.6,    17.4,      9.8,           8.3,             0,                22.5,       18.2,     14.4,     13.2,         13.1],
            [12.6,           11.9,        10.9,          8.8,         6.3,     4.1,            9,            13.9,      15.3,    19.8,      22.4,    19.8,      17.8,          13.9,            22.5,             0,          19.3,     15.1,     17,           9.6],
            [8.7,            8.7,         8.1,           9.3,         11.8,    16.3,           10,           8.4,       4.8,     4.1,       6.7,     2.3,       7.9,           12.1,            18.2,             19.3,       0,        6.3,      6.8,          9.9],
            [4.2,            4.3,         3.8,           4.9,         7.5,     12,             5.7,          4.1,       2.5,     7.3,       10.7,    5,         6.6,           8.2,             14.4,             15.1,       6.3,      0,        3.2,           5],
            [3.8,            4.5,         4.8,           5.2,         7.8,     14.3,           6,            6.4,       5.3,     9.1,       11.9,    6,         5.3,           7.1,             13.2,             17,         6.8,      3.2,      0,            4.8],
            [1.9,            1.7,         3.4,           2.3,         3.3,     8.1,            3.8,          5.9,       5.9,     10.4,      13,      9,         9.5,           5.7,             13.1,             9.6,        9.9,      5,        4.8,           0]]
			
			for EV_Start in RangeInKM_By_Manufacturer:
     for start_Driving in distances:
        Remaining_Range = [EV_Start-start_Driving]
     print(Remaining_Range)
Det jeg ønsker ny er å lage en ny matrise igjen som viser nåværende batteristatus, for å gjøre dette tar man den nye matrisen(Remaining_range) og deler på RangeInKM_ByManufacturer * 100, men får bare opp en haug med feilmeldinger..

Noen som har tips til gjennomføringsmåte?

EDIT: Jeg ser det blir litt utklart når man legger inn masse kode her, så derfor legger jeg også ved bilde, så blir det mer oversiktlig:

Sist endret av random512377; 22. mai 2018 kl. 15:31. Grunn: For å legge til bilde også.
For det første burde du legge ved feilmeldingene du får.

For det andre så er "indentatition" veldig viktig i Python. Altså, hvor mange mellomrom du har før koden. Sånn som det er nå så er ingenting under den første for løkken din, og print()en er selvstending. Slik burde det se ut ish, om jeg ikke tar helt feil

Enda en ting... Remaining_range er ikke en matrise. Det er en tall som består at EV_start (int) og start_Driving (float). Om du vil ha en matrise må det se noen lunde sånn her ut. Ser nå at distances er en matrise og ikke en liste som jeg først trodde... noe som gjør hele koden din veldig forvirrende. Kan du forklare hva målet ditt er her?

For å dele på RangeInKM og gange med 100 må du loope gjennom den nye matrisen, men jeg vet ikke helt hvordan du kan gjøre det før jeg skjønner hva du faktisk vil... hvordan City er relevant etc.

Kodesnuppene mine er også garantert ikke den beste/mest effektive måten å gjøre det på, så det får stå som et eksempel mer enn noe annet
Sist endret av Sinken; 22. mai 2018 kl. 17:28. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Gjest
Trådstarter
Sitat av Sinken Vis innlegg
For det første burde du legge ved feilmeldingene du får.

For det andre så er "indentatition" veldig viktig i Python. Altså, hvor mange mellomrom du har før koden. Sånn som det er nå så er ingenting under den første for løkken din, og print()en er selvstending. Slik burde det se ut ish, om jeg ikke tar helt feil

Enda en ting... Remaining_range er ikke en matrise. Det er en tall som består at EV_start (int) og start_Driving (float). Om du vil ha en matrise må det se noen lunde sånn her ut. Ser nå at distances er en matrise og ikke en liste som jeg først trodde... noe som gjør hele koden din veldig forvirrende. Kan du forklare hva målet ditt er her?

For å dele på RangeInKM og gange med 100 må du loope gjennom den nye matrisen, men jeg vet ikke helt hvordan du kan gjøre det før jeg skjønner hva du faktisk vil... hvordan City er relevant etc.

Kodesnuppene mine er også garantert ikke den beste/mest effektive måten å gjøre det på, så det får stå som et eksempel mer enn noe annet
Vis hele sitatet...
Takk for svar! Print(Remaining_Range) er noe jeg hadde med fra før av, men fjernet det rett før jeg postet av en merkelig grunn :P

Tanken er jo egentlig at jeg ved å lage denne nye matrisen skal ha en tabell med batteristatus hvor jeg kan sammenlikne bilene mot hverandre å se hvor mye rekkevidde det er igjen på hver av en.

Men innlegget ditt ga meg mange gode ideer! Takk

EDIT: Etter litt hjelp fra en kompis, fikk jeg dette til, ved å først å fikse de nye listene i et ordentlig format, for deretter å bruke np.divide. Litt vanskelig å forklare her, så jeg legger ved kodesnutten under så skal det være ganske enkelt å forstå:

Remaining_Range = np.array(Remaining_Range)
Remaining_Range = Remaining_Range.flatten()
RangeInKM_By_Manufacturer = np.array(RangeInKM_By_Manufacturer)
RangeInKM_By_Manufacturer = np.vstack(RangeInKM_By_Manufacturer)

SoC = np.divide(Remaining_Range, RangeInKM_By_Manufacturer)

SoC = np.multiply(SoC, 100)
Sist endret av random512377; 23. mai 2018 kl. 09:46. Grunn: Automatisk sammenslåing med etterfølgende innlegg.