How to replace random integers with the alphabet (1=A, 2=B, and so on)

3 visualizzazioni (ultimi 30 giorni)
Hi, Thank you for helping me
I am trying to replace a square matrix of random integers with the alphabet
For instace: A = [1 2; 3 5] should give you A = [A B; C E]
My code is:
clear all; clc;
n = input('Choose your square matrix dimension: ')
N = round((27)*rand(n))
A = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for kk = 1:length(N)*2
N(kk) = A(kk);
end
N
I do not know how to replace the numbers with the alphabet.
Could you help, please?
Thank you very much
Have a nice day.

Risposta accettata

Guillaume
Guillaume il 5 Feb 2018
An easiest way to generate random integers is to use randi. As for your replacement it's achieved with simple indexing:
n = input('Choose your square matrix dimension: ');
N = randi(26, n);
A = 'A' : 'Z';
%replacement, note that this requires that all N are strictly positive integer:
NewN = A(N)

Più risposte (1)

Walter Roberson
Walter Roberson il 5 Feb 2018
output = repmat(' ', size(N));
and then
output(kk) = A(N(kk));
However, notice that your N includes values that are 0: if the rand() produces a value less than 1/54 then multiplying by 27 would give less than 1/2 and round() of that would be 0.

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by