Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem matlab - dělení devíti

Dobrý den,
pokouším se v Matlabu napsat jednoduchý program, ale moc nevím jak na to. Cílem je abych zadal nějaký interval... a Matlab mi vypsal čísla, která jsou z toho intervalu dělitelná devíti.

Neporadil by mi někdo prosům jakou mám použít funkce?
1. určitě tam bude cyklus
2. použiji funkci mod
3. jakou fci použít aby mi Matlab řekl, že zrovna toto číslo je dělitelné devíti?

Děkuji

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
najdeš první číslo z intervalu dělitelné 9 (buď reálným modem čísla, nebo ciferným součtem a mod 9),…
touchwood 04.12.2017 21:04
touchwood
Já jsem myslel, že pomocí mod zjistím pouze zda dělení funkce vyjde bezezbytku...
Matlab 04.12.2017 21:23
Matlab
napiš do příkazového řádku help mod a dostane se ti daleko obsáhlejšího popisu a ještě obsáhlejšího… nový
ml1 05.12.2017 18:36
ml1
Takhle to dopadá, když někdo chce programovat, aniž by se naučil a pochopil algoritmizaci problému.…
Machr55 05.12.2017 08:28
Machr55
Tak tak, základem každého programu v libovolném jazyce je algoritmizace problému. Jen tak pro zajím… poslední
ml1 05.12.2017 18:46
ml1

najdeš první číslo z intervalu dělitelné 9 (buď reálným modem čísla, nebo ciferným součtem a mod 9), následně budeš k tomu číslu přičítat 9 a vypisovat, dokud bude menší nebo rovno hornímu limitu intervalu.

napiš do příkazového řádku help mod a dostane se ti daleko obsáhlejšího popisu a ještě obsáhlejšího při doc mod. To se dá aplikovat na každý příkaz včetně vlastních funkcí a skriptů (za předpokladu, že se člověk namáhal s napsáním pár slov jako dokumentace).

V matlabu je třeba zajímavé, že funkce mod bere i necelá čísla. Vůbec neni problém dělat modulo 2*pi (převod úhlu do základního intervalu) a podobné vylomeniny.

Jinak matlab má velice slušnou nápovědu a řadu příkladů. Jen jako u všeho musí člověk trochu předvídat, co hledá. Zejména s úplnými základy je trochu problém, samozřejmě že to v nápovědě je, ale těžko najdete třeba cell array, když nevíte, že hledáte cell array.

Takhle to dopadá, když někdo chce programovat, aniž by se naučil a pochopil algoritmizaci problému.
Načrtnu postup:

1. Číslo = začátek intervalu
2. Zbytek = Číslo MOD 9
3. když Zbytek > 0, pak Číslo = Číslo + (9 - Zbytek)
4. cyklus dokud Číslo < konec intervalu
5.   vypiš Číslo   (pozn.: toto číslo je dělitelné 9)
6.   Číslo = Číslo + 9
7. konec cyklu

Určitě by se to dalo postupovat i jinak, tohle je jedna z možností.

Tak tak, základem každého programu v libovolném jazyce je algoritmizace problému.

Jen tak pro zajímavost speciálně pro matlab se to dá vyřešit i bez explicitního cyklu, zkusím naznačit

cisla = prvni:posledni;%středník nezapomenout, jinak se vypíšou, platí i pro další řádky
vyber = mod (cisla,delitel);
.....nyní vyhledat nulové výsledky, to se mi nechce hledat, už musím končit (funkce find s příslušnými parametry něco jako indexy = find(...))
..... a vypsat podle indexů nulových zbytků
disp(cisla(indexy))
.....nebo někam uložit
hlcisla = cisla(indexy)

Zpět do poradny Odpovědět na původní otázku Nahoru