Turning numbers into letters based on alphabetical order
Show older comments
Hi all, I am trying to export multiple matrix variable that change in size to an excel file. To get their spacing right I need to give a cell name (eg. 'B3') where I want the variable to be placed. However, I want to be able to space my matrices based on their number of columns, which mean taking a length() command and turning it into a letter. Is there any built in way in matlab to do this. an example of what I'm looking for is below.
function(7)
ans G (because it is the 7th letter in the alphabet)
There may be an easier way of doing this with xlswrite but I dont know it. Thanks
Brendan
1 Comment
Christian Lopez Garcia
on 25 Jul 2019
num=26;
position = alphabet(num)
function position=alphabet(num)
mult=floor(num/26);
diff=num-26*mult;
symbols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
range=26.*[1:26];
if num>26
for i=1:length(range)
if (num >= range(i) && num <= range(i+1))
start=string(symbols(i))
end
end
if diff > 0
extension=string(symbols(diff))
position=char(start+extension+'1')
else diff=0
extension=string(symbols(26))
position=char(start+extension+'1')
end
else
position=string(symbols(num));
position=char(position + '1');
end
end
Accepted Answer
More Answers (1)
the cyclist
on 15 Jun 2012
There's not an explicit builtin for this, but it is easy to write:
function c = letterRankToLetter(n)
c = char('A'+n-1);
end
This will only work for n in the range 1-26, so you might want to put some error-checking in there.
Categories
Find more on Spreadsheets in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!