Function to take grid reference
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
keyboard_cuts
el 9 de Dic. de 2015
Comentada: Stephen23
el 9 de Dic. de 2015
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 comentarios
Respuesta aceptada
Stephen23
el 9 de Dic. de 2015
Editada: Stephen23
el 9 de Dic. de 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 comentario
Stephen23
el 9 de Dic. de 2015
Try this:
S = input('Enter the grid reference you wish to convert: ','s');
C = upper(S(1))-64
R = str2num(s(2:end))
Más respuestas (1)
Walter Roberson
el 9 de Dic. de 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 comentarios
Walter Roberson
el 9 de Dic. de 2015
Note: Stephen's code is more compact; my code is more efficient for the particular requirements that were given.
Ver también
Categorías
Más información sobre Numeric Types en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!