NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: pole2D

Aktivity
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Odpovídá na gcx11
Jaroslav Trojan:10.6.2017 15:38

U indexu sloupců je to jisté, tiskne se jich 8,to je vidět. A indexy řádků začínají též na nule, jako sloupce, a končit musí na čísle 10, protože 2*pocetstycI1 je 2*5 , takže je 11 řádků včetně nultého řádku, ten tam určitě je (vidět na tisku), a to je taky jasné. Jak může být index mimo rozsah je mi záhadou.
Opakuje se mi to i v jiném případu, který přikládám v příloze. Opět je index mimo rozsah, i když všechny indexy jsou uvnitř pole , zřejmé z tisku indexů.

Odpovědět
10.6.2017 15:38
statik
Avatar
Odpovídá na Jaroslav Trojan
Michal Haňáček:10.6.2017 16:25

Jaroslave, na takový projekt by možná bylo lepší používat nějaké IDE (jej ich mraky PyCharm, NinjaIde, atd.), aby jsi mohl kód trasovat. Tady, pokud je ti záhadou jaké hodnoty se plní do promenných, asi bych doporučil si je tisknout, tak by jsi měl jistotu, že jsi se dostal, nebo nedostal kam jsi neměl ... kód nezkoumám, k těm screenům jsme se vyjadřoval už dříve.

Nahoru Odpovědět
10.6.2017 16:25
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Odpovídá na Michal Haňáček
Jaroslav Trojan:10.6.2017 17:44

A kde IDLE PyCharm získám?

Nahoru Odpovědět
10.6.2017 17:44
statik
Avatar
Adam Ježek
Tvůrce
Avatar
Odpovídá na Jaroslav Trojan
Adam Ježek:10.6.2017 19:20

V první řadě bych se podíval do koše nebo zavolal sousedovi. A slyšel jsem že ho maj na Benzině před Prahou.
Když se nezadaří tak bych zkusil otevřít Google a napsat PyCharm.

Nahoru Odpovědět
10.6.2017 19:20
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:11.6.2017 13:57

Ahoj, vysvětlí mi někdo tu disproporci, kdy u maticeK je pro i range(0, 14) a Python vyhodí chybu: index je mimo rozsah a přitom je index i=9 a j=0 ,jak je zřejmé z přílohy. Jak je vidět na příloze, tak cykly od i=0 do i=8 proběhly bezvadně.

Nahoru Odpovědět
11.6.2017 13:57
statik
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:11.6.2017 14:03

Omlouvám se , poslal jsem jinou přílohu, správně je tato příloha :

Nahoru Odpovědět
11.6.2017 14:03
statik
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Jaroslav Trojan
gcx11:11.6.2017 14:14

Chtělo by to i definici matice, takto je to vaření z vody. Pravděpodobnost, že je chyba v Pythonu je dost malá.

 
Nahoru Odpovědět
11.6.2017 14:14
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Odpovídá na gcx11
Jaroslav Trojan:11.6.2017 14:34

Definice matice K je dána range(0,14) pro i a range (0,8) pro j . Je to vidět na příloze, kde je matice K vynulována (pocetstycI1=5) a d1=6 , takže výsledná matice je K(14x8).

Nahoru Odpovědět
11.6.2017 14:34
statik
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Jaroslav Trojan
gcx11:11.6.2017 14:45

Musíš to prohodit, to první definuje počet sloupců, to druhé počet řádků.

matk = [[0 for j in range(d1+1+1)] for i in range(pocetstycI1*2+2+2)]

navíc tam máš špatně

d1+1+2 = 9

Takže matice je 9x14, bez té opravy, čímž to umře na devítce, protože je to číslováné od nuly.

 
Nahoru Odpovědět
11.6.2017 14:45
Avatar
Odpovídá na gcx11
Michal Haňáček:11.6.2017 15:18

Ana to celé by si Jaroslav přišel i sám, kdyby si program trasoval a nebo vypisoval indexy tak jak jsem mu tady radil už někdy v pátek ... je to to stejné stále dokola ...

Nahoru Odpovědět
11.6.2017 15:18
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Odpovídá na gcx11
Jaroslav Trojan:11.6.2017 15:33

Děkuji, opravil jsem to, funguje.

Nahoru Odpovědět
11.6.2017 15:33
statik
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Michal Haňáček
gcx11:11.6.2017 15:39

V Pythonu mi stačí print a když píšu program, tak po částech, kde jsem si jistý, že fakt na 99% fungují. Přepisování programu z jednoho jazyka do jiného změnou syntaxe je cesta do pekel.

V tomto případě by stačilo:

print(len(matK)) # počet řádků
print(len(matK[0])) # počet sloupců

a hned by věděl, že v těch rozměrech je chyba.

 
Nahoru Odpovědět
11.6.2017 15:39
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:15.6.2017 12:31

Načítám prvky do matice U[3x3] pomocí append() . Do obou řádků se mi ale dostávají nuly, a neumím se jich zbavit. Potřebuji tam mít jen ta 3 čísla v obou řádcích. Matice U byla deklarována jako i=0,1,2 a j=0,1,2.
Děkuji za pomoc.

Nahoru Odpovědět
15.6.2017 12:31
statik
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Jaroslav Trojan
gcx11:15.6.2017 15:02

Protože tím pádem by měla deklarovaná jinak:

U = [[] for in range(3)]

Anebo si ponech stávající inicializaci matice a vkládej tam prvky přes indexy.

 
Nahoru Odpovědět
15.6.2017 15:02
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:16.6.2017 19:58

Dobrá, funguje to, velmi děkuji.

Nahoru Odpovědět
16.6.2017 19:58
statik
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:28.6.2017 10:38

Velmi nerad musím zase napsat dotaz. Program mi již běžel až do konce. Udělal jsem nějaké úpravy a zkazilo se mi vypisování matice matK. Nemohu rozluštit proč index j je mimo rozsah, deklarace matK je zřejmě správně, viz příloha. Nebo se mýlím?

Nahoru Odpovědět
28.6.2017 10:38
statik
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:28.6.2017 10:42

P.S. index j má dosáhnout hodnoty=7, řádek matice matK má 7 položek : 1 až 7

Nahoru Odpovědět
28.6.2017 10:42
statik
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:28.6.2017 10:47

d1=6 pocetstycI1=5

Nahoru Odpovědět
28.6.2017 10:47
statik
Avatar
Odpovídá na Jaroslav Trojan
Michal Haňáček:28.6.2017 12:50

Jaroslave, zkuste implementovat rady, které jste tady již dříve dostal. Pokud se Vám nechce aplikaci, kterou píšete krokovat, tak si alespoň indexy vypisujte/logujte a jistě sám přijdete na to proč jsou mimo rozsah. To pro nás všechny a zejména Vás samotného bude jistě přínosnější než sem postovat screenshoty cyklicky se opakujících problémů s přetečeným indexem ...

Nahoru Odpovědět
28.6.2017 12:50
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Odpovídá na Michal Haňáček
Jaroslav Trojan:29.7.2017 14:53

Zdravím všechny,
byl mi nainstalován nový systém Windows 10, přitom jsem přišel o celý program v Pythonu a začínám znovu.
Objevilo se mi, že objekt je nevolatelný, viz příloha. Co to znamená? Díky za radu.

Nahoru Odpovědět
29.7.2017 14:53
statik
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 20 zpráv z 70.