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
Pěkný den,
mooc bych prosil o radu: Mám např. vektor: a=[1 2 3 6 4 7 9 1 0] a potřeboval bych vytvořit algoritmus který mi vypíše prvky vektoru, které jsou větší než 3. Úloha se řeší v MATLABU. Za každou radu budu moc rád.
Děkuji
Offline
↑ jendula11: dělat jednoduchý věci zbytečně složitě je proti mýmu přesvědčení
Online
↑ jendula11:
Podobně jako u té matice, nyní máš, ale jen jednorozměrné pole/vektor
For cyklem procházíš vektor a pomocí if testuješ zda je obsah toho daného prvku větší než 3. Když ano, tak ho vypíšeš. Když ne, tak neuděláš nic. Stačí trochu přemýšlet.
Offline
↑ gladiator01:
No skoušel jsem to, ale bohužel nejsem moc úspěšný. Nevím jak nadefinovat když původní vektor bude mít jiný rozměr než výsledný.
a=[1 2 3 6 4 7 9 1 0]
for i=1:length(a)
if a(i)>3
b=a(i)
elseif a(i)<=3
b=[]
end
end
Prosím jak by to mělo být správně? Děkuji.
Offline
↑ jendula11:
a o co se snažíš, zapsat ty ostatní (výsledek) do nového vektoru?
když vynecháš elseif a(i)<=3 b=[] (to je myslim celkem zbytečné, aby tam bylo), tak ti to vypiše správně ty prvky větší než 3.
Offline
↑ gladiator01:
Když to vypíšu takto:
a=[1 2 3 6 4 7 9 1 0]
for i=1:length(a)
if a(i)>3
b=a(i)
end
end
tak mi to bohužel vypíše pouze poslední prvek z matice a, který splnuje podmínku. Myslím, že asi bude problém s tím definováním vektoru b, ale nevím jak to opravit :-(
Offline
Zkus to takhle
a=[1 2 3 6 4 7 9 1 0] j=1; for i=1:length(a) if a(i)>3 b(j)=a(i); %uložení jednotlivých prvků do vektoru b j=j+1; end end b %výpis b
V zadání jsi psal, že chceš jen VYPSAT a ne uložit a později znova použít. V tomto případě by byl kód z předchozích příspěvků funkční (neukládáš do vektoru, ale jen do jednorozměrné proměnné, proto, když se snažíš proměnou znova vypsat, tak se ti zobrazí jen poslední hodnota ).
Jestli ti to takhle stačí, tak označ téma za vyřešené.
Offline
↑ gladiator01:
Ok, před tím jsem se špatně vyjádřil. Mooc díky za pomoc.
Offline