function Y = tenzorRanga1(as) % Y = tenzorRanga1(as) % Funkcija sprejme cell array as, ki vsebuje vektorje a_1 = as{1}, ... a_d = as{d}. % Vrnemo tenzor Y ranga 1, za katerega velja % Y(i1, i2, ..., id) = a_1(i1) * ... * a_d(id) d = length(as); dolzine = zeros(1, d); for i = 1:d dolzine(i) = length(as{i}); end Y = zeros(dolzine); cleni = obratnoLeksikografsko(dolzine); % vrstni red je sicer poljuben ... for clen = cleni a = 1.0; for i = 1:d a = a * as{i}(clen(i)); end multiIndeks = num2cell(clen); Y(multiIndeks{:}) = a; end end