温馨提示:本文翻译自stackoverflow.com,查看原文请点击:symbols - Matlab strsplit at non-keyboard characters
matlab symbols strsplit

symbols - Matlab拆分非键盘字符

发布于 2020-04-08 10:19:41

在这种情况下,我有一个纬度/经度坐标的单元格数组,我将从文件中读取它们作为格式为字符串的字符串:

x = {'27° 57'' 21.4" N', '7° 34'' 11.1" W'}

其中°实际是度数符号(U + 00B0)。

我想使用strsplit()或等效的方法来找出数字分量,但是我不知道如何将度数符号指定为定界符。

','不愿简单地在处分割并索引出该数字,因为如上所示,我不知道期望多少位数。

我在网站的其他地方发现了以下建议:

x = regexp(split{1}, '\D+', 'split')

但是,这也分隔了十进制数字的整数和十进制部分。

有没有strsplit()其他选择,或者我可以使用的其他选择?

查看更多

提问者
TheSuperLemming
被浏览
120
Cris Luengo 2020-01-27 23:48

您可以将度数符号从数据文件复制粘贴到M文件脚本中。MATLAB在其字符串中完全支持Unicode字符。例如:

strsplit(str, {'°','"',''''})

在三个符号处分割字符串。

或者,您可以使用sscanf(或者fscanf如果直接从文件读取)解析字符串:

str = '27° 57'' 21.4"';
dot( sscanf(str, '%f° %f'' %f"'), [1, 1/60, 1/3600] );