function y = substitute(x)
    in = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
    out = {'#', '.', '~', '1', '_', '>', '-', '*', '<', '=', ':', '4', '\', '8', '+', '2', '?', '7', '!', '3', '0', '9', '6', '@', '&', '5'};
    y = lower(x);
    for i = 1:1:length(y)
        if strcmp(y(i), ' ')
            continue;
        elseif ~isletter(y(i))
            error('Input must be a-z or whitespace!');
        end
        y(i) = out{find(strcmp(y(i), in))};
    end
end

 

Forklaring på uttrykket y(i) = out{find(strcmp(y(i), in))}:

y(i) 			% Henter ut verdien på indeks 'i' i strengen 'y'.
strcmp(A, B) 	% Lager en liste med sannhetsverdier like lang som B, hvor verdien 1 betyr at verdien A ble funnet på tilsvarende indeks i B.
find(X) 		% Denne kan gjøre mye forskjellig, men ettersom input X i dette tilfellet er en sannhetsvektor, vil denne gi oss indeksen til elementene som ikke er null. 
				% I dette tilfellet er det bare én posisjon som ikke er null, og den returnerer derfor bare én indeks.
out{j}			% Henter ut elementet på indeks 'j' i cell-array 'out'. Dette er en char, og kan derfor enkelt legges inn i strengen 'y'
  • No labels