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

3 次查看(过去 30 天)
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.

采纳的回答

Guillaume
Guillaume 2018-2-5
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)

更多回答(1 个)

Walter Roberson
Walter Roberson 2018-2-5
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.

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by