Code Block |
---|
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))}
:
Code Block |
---|
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' |