Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Dobrý den,
moooc bych prosil o pomoc jak vytvořit matici rozměru 10,10, která bude na hlavní diagonále obsahovat čísla 1 - 10 všude jinde nuly. Potom to stejné akorát na vedlejší diagonále. Nejsem mooc zběhlý programátor tak budu rád za každou radu, aspoň principielně.
Dle zadání by se to mělo řešit přes cykly for.
Děkuji moc.
Offline
Na hlavní diagonále matice máš vždycky obě souřadnice stejné, takže procházej dvojrozměrné pole pomocí dvou for cyklů a když se budou souřadnice rovnat (podmínka if), tak do pole zapiš hodnotu nějaké proměnné kterou budeš zvyšovat. V ostatních případech (else) zapisuješ nuly.
Offline
↑ gladiator01:
Je to myšleno takto?
for i=1:10
for j=1:10
if i=j
a(i,j)=1:10
else
a(i,j)=0
end
end
end
Děkuji za pomoc.
Offline
↑ jendula11:
V podstatě ano, syntaxi v matlabu neznám.
Offline
↑ jendula11:
len malé upozornenie:
princíp je celkom dobrý, ale v riadku 4 je problém.
Matlab tomu nebude rozumieť. ten príkaz hovorí, že na jednotlivú bunku matice má vložiť 10 hodnôt, čo nie je možné.
možno to je iba preklep v rýchlosti.
Offline
c=1; for i=1:10 for j=1:10 if i==j d(i,j)=c; c=c+1; else d(i,j)=0; end end end d%výpis
2. součet souřadnic na vedlejší diagonále je o 1 větší než rozměr matice
c=1; for i=1:10 for j=1:10 if i+j==11 d(i,j)=c; c=c+1; else d(i,j)=0; end end end d%výpis
Offline
↑ gladiator01:
Děkuji, zkoušel jsem to tím mojím kódem výše a fungovalo. Tvůj vypadá lépe..ještě jednou děkuji za pomoc.
Offline
Stránky: 1