Zaloguj się
Blog na Matlablog
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

pomoc silnia rekurencyjna
Forum MATLAB Strona Główna-> MATLAB
Post Wysłany: 28 Sierpnia 2017, Pon 6:57 pm Temat postu: pomoc silnia rekurencyjna Odpowiedz z cytatem
 
AUTOR:
bostontea



Dołączył: 28 Sie 2017
Posty: 2


Ogląda profil użytkownika Wyślij prywatną wiadomość
Witam, od kilku dni zaczynam się poruszać w środowisku matlab. Mam problem z napisaniem programu liczącego silnię rekurencyjnie dla każdego elementu tablicy,

Kod:

clc
clear
;
a=round(20*rand(10,15));
disp(a)
s=silniar(a);
disp(s);


Kod:

function[s]=silniar(a)
s=1;
if
a>0
    s
=silniar(a-1)*a;
end;


Za każdym razem s=1, co mogę zrobić? Przyznam, że jestem dość zielona:)
Wbudowana funkcja factorial działa, ale to chyba nie to samo.
Z góry dziękuję.


 

Post Wysłany: 28 Sierpnia 2017, Pon 7:26 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
mc2
Może pisać książki


Dołączył: 19 Maj 2009
Posty: 2249


Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
Najprostszym rozwiązaniem będzie wywołanie funkcji silniar w pętli:
Kod:
clc
clear
;
a=round(20*rand(10,15));
disp(a)
s = zeros(size(a));
for
i=1:numel(a)
s(i)=silniar(a(i));
end
disp
(s);


Możesz tez oczywiście zmodyfikować kod funkcji silniar poprzez analogiczne dodanie pętli wewnątrz tej funkcji.
 

Post Wysłany: 28 Sierpnia 2017, Pon 10:29 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
bostontea



Dołączył: 28 Sie 2017
Posty: 2


Ogląda profil użytkownika Wyślij prywatną wiadomość
mc2 napisał:
Najprostszym rozwiązaniem będzie wywołanie funkcji silniar w pętli:
Kod:
clc
clear
;
a=round(20*rand(10,15));
disp(a)
s = zeros(size(a));
for
i=1:numel(a)
s(i)=silniar(a(i));
end
disp
(s);


Możesz tez oczywiście zmodyfikować kod funkcji silniar poprzez analogiczne dodanie pętli wewnątrz tej funkcji.


Wielkie dzięki, aż mi wstyd, że to było takie proste Confused


 

Post Wysłany: 29 Sierpnia 2017, Wto 9:10 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
darekc
Może pisać książki


Dołączył: 19 Lis 2007
Posty: 566
Skąd: P.Śl. Gliwice


Ogląda profil użytkownika Wyślij prywatną wiadomość
Jeszcze inne rozwiązanie:

Kod:
function [s] = silniar(a)

if
a>1
  s
= silniar(a-1) * a;
else
 
s = 1;
end


 

Post Wysłany: 24 Października 2017, Wto 11:51 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
panistefanin
Początki pisania


Dołączył: 24 Paź 2017
Posty: 9


Ogląda profil użytkownika Wyślij prywatną wiadomość
Witaj! Bardzo interesujący temat, dziękuję, że to wzbudziłeś
my hr cvs


 

Forum MATLAB Strona Główna-> MATLAB
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 40905460
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
Brytania (Britannia) {S01E010} online PL napisy CDA 1x10  (17 Styczenia 2018, Sro 11:29 pm)
Brytania (Britannia) {S01E09} online PL napisy CDA 1x09  (17 Styczenia 2018, Sro 11:28 pm)
Brytania (Britannia) {S01E08} online PL napisy CDA 1x08  (17 Styczenia 2018, Sro 11:28 pm)
Brytania (Britannia) {S01E08} online PL napisy CDA 1x08  (17 Styczenia 2018, Sro 11:28 pm)
Brytania (Britannia) {S01E07} online PL napisy CDA 1x07  (17 Styczenia 2018, Sro 11:27 pm)
Brytania (Britannia) {S01E06} online PL napisy CDA 1x06  (17 Styczenia 2018, Sro 11:27 pm)
Brytania (Britannia) {S01E05} online PL napisy CDA 1x05  (17 Styczenia 2018, Sro 11:27 pm)
Brytania (Britannia) {S01E04} online PL napisy CDA 1x04  (17 Styczenia 2018, Sro 11:26 pm)
Brytania (Britannia) {S01E03} online PL napisy CDA 1x03  (17 Styczenia 2018, Sro 11:21 pm)
Brytania (Britannia) {S01E02} online PL napisy CDA 1x02  (17 Styczenia 2018, Sro 11:20 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum