function [x] = gaussElim2(A,b)
  
  %%% az input ellenőrzése: 
  [n, m] = size(A);
  [nb, mb] = size(b);
  x = nan(n,1);
  if (n ~= m) | (mb ~= 1) | (n ~= nb)
    error("A és/vagy b dimenziója nem megfelelő!")
  endif
  
  %%% Gauss elimináció eliminációs mátrixokkal - "helyben" felülírja az A mátrixot és a b vektort! 
  for j=1:n-1                             % a j-dik eliminációs mátrixszal küszöböljük ki x(j)-t
    M_j = eye(n);
    M_j((j+1):n,j)=-A((j+1):n,j)/A(j,j);
    A = M_j * A;                          % ez csak demó: túl sok művelet!
    b = M_j * b;                          % ez csak demó: túl sok művelet!
  endfor
  
  U = triu(A);
  x = felsoHaromszogMegold(U,b);
endfunction  