Function to take grid reference
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
fairly new to this, would any body be able to tell me how i can create a function that can take a grid reference eg A10, C4, F6, etc and convert it into a row and column index? oh btw the grid has to be ten by ten!
0 Commenti
Risposta accettata
Stephen23
il 9 Dic 2015
Modificato: Stephen23
il 9 Dic 2015
>> fun = @(s)[upper(s(1))-64,str2num(s(2:end))];
>> fun('A10')
ans =
1 10
>> fun('C4')
ans =
3 4
>> fun('F6')
ans =
6 6
1 Commento
Stephen23
il 9 Dic 2015
Try this:
S = input('Enter the grid reference you wish to convert: ','s');
C = upper(S(1))-64
R = str2num(s(2:end))
Più risposte (1)
Walter Roberson
il 9 Dic 2015
Under the condition that it is 10 by 10 exactly,
r1 = GR(1) - 'A' + 1;
if length(GR) == 2
r2 = GR(2) - '0';
else
r2 = 10;
end
You do not specify whether the letters indicate rows or columns so make the appropriate choice [r1,r2] or [r2,r1]
If the grid can be larger than 10 x 10 then the "else" would have to be adjusted. If the grid can be larger than 26 then the r1 logic would need to be adjusted.
2 Commenti
Walter Roberson
il 9 Dic 2015
Note: Stephen's code is more compact; my code is more efficient for the particular requirements that were given.
Vedere anche
Categorie
Scopri di più su Matrix Indexing 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!