Prílohy:1

Overenie vstupu a histogram početnosti

Požiadavky

  1. Načítanie vstupu - čísla zadaného klávesnicou do premennej N (funkcia input)
  2. Ošetrenie vstupu podmienkou - zadané číslo musí byť celé a z intervalu od 1 do 100
  3. Naplnenie matice A rozmeru N × N náhodnými celými číslami od 1 do N okrem diagonály, kde budú čísla od 1 do N, t. j. A(1,1) = 1, A(2,2) = 2 .. A(N,N) = N
  4. Vytvorte vektor F (matica s jedným stĺpcom) rozmeru (N×1 - N riadkov a 1 stĺpec), pričom na (i,1) pozícii bude početnosť čisla i z matice A, t. j. spočítate všetky výskyty čisel od 1 do N v matici A a uložíte ich vo vektore F (početnosť čísla i z A bude v F(i, 1))
  5. V grafickom okne nakreslite stĺpcový histogram výskytu početností čísel z matice A, t. j. graficky vykreslíte vytvorený vektor F (usporiadané dvojice [i, početnosť i z matice A])
  6. maticu A vyexportujte do textového súboru, pričom prvky matice A budu oddelené čiarkou a riadky matice bodkočiarkou

napr.:

N = 3
A = [1 3 2; 2 2 1; 3 2 3]
F = [2; 4; 3]

textový súbor:
1, 3, 2; 2, 2, 1; 3, 2, 3;

Graf pre uvedenú maticu

histogram početnosti

Riešenie

Kód sa bude nachádzať v samostanom súbore (subor.m), ktorý vložíme do aktuálneho workspaceu. V okne matlabu potom stačí napísať názov súboru.

N = input('zadajte N: ');
if ~(isnumeric(N) && N>=1 && N<=100)
    disp('nespravny vstup')
    return
end

A = randi(N,N);

for i=1:N 
    A(i,i)=i;
end

F = zeros(N,1);

fid = fopen('matica.txt','w');
for i=1:N 
    for j=1:N
        F(A(i,j),1)=F(A(i,j),1)+1;
        fprintf(fid,int2str(A(i,j)));
        if (j<N)
            fprintf(fid,', ');      
        end
    end
    fprintf(fid,'; ');
end
fclose(fid);

bar(F);

Výpis pri spustení

>> subor
zadajte N: 3
>> type matica.txt

1, 2, 3; 2, 2, 2; 3, 3, 3;
>> 

graf