Matematické Fórum

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

#1 01. 10. 2012 17:58 — Editoval jendula11 (01. 10. 2012 17:58)

jendula11
Příspěvky: 563
Reputace:   
 

matlab - diagonální matice

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

  • (téma jako vyřešené označil(a) gladiator01)

#2 01. 10. 2012 18:17 — Editoval gladiator01 (01. 10. 2012 18:18)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: matlab - diagonální matice

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.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#3 01. 10. 2012 18:28 — Editoval jendula11 (01. 10. 2012 18:28)

jendula11
Příspěvky: 563
Reputace:   
 

Re: matlab - diagonální matice

↑ 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

 

#4 01. 10. 2012 19:12

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: matlab - diagonální matice

↑ jendula11:

V podstatě ano, syntaxi v matlabu neznám.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#5 01. 10. 2012 19:26

jendula11
Příspěvky: 563
Reputace:   
 

Re: matlab - diagonální matice

↑ gladiator01:

Dobře, děkuji.

Offline

 

#6 01. 10. 2012 20:21

etchie
Příspěvky: 159
Pozice: študent
Reputace:   
 

Re: matlab - diagonální matice

↑ 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

 

#7 06. 10. 2012 10:22

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: matlab - diagonální matice

↑ jendula11:
1.

Code:

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

Code:

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

Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#8 06. 10. 2012 11:43

jendula11
Příspěvky: 563
Reputace:   
 

Re: matlab - diagonální matice

↑ 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

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson