function soustava_rovnic_vystup_soubor(A,b,x,pocet_korenu)
% vypsani reseni soustavy rovnic do souboru
% vstupni parametry funkce (matice koeficientù soustavy A, 
% sloupec pravých stran b - zadán jako radkovy vektor, reseni soustavy x
% pocet korenu soustavy, tj. pocet prvku vektoru x)

% uzivatel je pozadan o zadani nazvu souboru (prip. vcetne cesty), opet
% pouzit parametr 's' - ocekavame retezec
nazev=input('\nZadejte nazev vystupniho souboru: ','s');

%   je otevren soubor pro zapis - parametr 'w' = write, pro cteni by se pouzilo 'r' = read
fd=fopen(nazev,'w');

%   a proveden tisk do souboru - vsimnete si odkazu na soubor - promenna fd (file descriptor)
fprintf(fd,'\n Matice koeficientu soustavy:\n'); % vypis dat na obrazovku
for m=1:length(A) % cyklus s pevnym poctem opakovani, m urcuje radky matice
    for n=1:length(A) % cyklus s pevnym poctem opakovani, n urcuje sloupce matice
        fprintf(fd,'%.6f\t',A(m,n)) % vypis dat na obrazovku
    end; % ukonceni cyklu
    fprintf(fd,'\n') % vypis na obrazovku, \n  - nova radka
end; % ukonceni cyklu

fprintf(fd,'\n Vektor pravych stran:\n'); % vypis dat na obrazovku
for m=1:length(b) % cyklus s pevnym poctem opakovani, m urcuje poradi prvku ve vektoru
    fprintf(fd,'%.6f\n',b(m)) % vypis formatovanych dat
end; % ukonceni cyklu

switch pocet_korenu
    case 1
        fprintf(fd,'Resena soustava ma %d koren.\n',pocet_korenu);
    case {2,3,4}
        fprintf(fd,'Resena soustava ma %d koreny.\n',pocet_korenu);
    otherwise
        fprintf(fd,'Resena soustava ma %d korenu.\n',pocet_korenu);
end; % ukonceni prepinace switch

for cykl=1:pocet_korenu
     fprintf(fd,'\tKoren x%d = %8.3f\n',cykl,x(cykl));
end; % ukonceni cyklu

fclose(fd); % soubor je nutno uzavrit

zprava = sprintf('Do souboru %s bylo uloženo reseni soustavy. Pocet reseni: %d', nazev, length(x));
msgbox(zprava,'Uložená data','help');