我有一个包含类星体URL的数组
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0269/spec-0269-51581-0467.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0329/spec-0329-52056-0059.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/104/spectra/2957/spec-2957-54807-0164.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0342/spec-0342-51691-0089.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2881/spec-2881-54502-0508.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0302/spec-0302-51616-0435.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2947/spec-2947-54533-0371.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0301/spec-0301-51942-0460.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/104/spectra/2962/spec-2962-54774-0461.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2974/spec-2974-54592-0185.fits我想根据spec-旁边的数字来排序URL数组,而不是使用字母顺序。我使用sort对数组进行排序,但没有帮助,因为它总是将3rd行和2nd last行放在首位,因为它们有一个1。
我想要这样的输出
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0269/spec-0269-51581-0467.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0301/spec-0301-51942-0460.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0302/spec-0302-51616-0435.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0329/spec-0329-52056-0059.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0342/spec-0342-51691-0089.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2881/spec-2881-54502-0508.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2947/spec-2947-54533-0371.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/104/spectra/2957/spec-2957-54807-0164.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/104/spectra/2962/spec-2962-54774-0461.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2974/spec-2974-54592-0185.fits发布于 2016-08-13 00:42:51
如果您将始终采用这种模式,则可以尝试:
fileName = strsplit(myUrl, '/')(end)
number = strsplit(fileName(5:end), '.')(0)带你经历这一切理解就是一切..。
我们一开始
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0269/spec-0269-51581-0467.fits首先,我们在/字符上拆分URL。这将返回从该字符分离出来的字符串向量。因为要排序的数字位于最后的/之后,所以我们可以传递end来获取最后一个。现在我们有了
spec-0269-51581-0467.fits接下来,让我们将这个讨厌的spec-从数字中删除。这个步骤实际上并不是必要的,因为它在所有URL中都是恒定的,但是让我们只是为了好玩才这么做。我们可以使用Matlab的子字符串来获取-后的字符,使用fileName(5:end)。这将创建一个以第五个字符(在本例中为0)开始的字符串,并继续到末尾。太好了,现在我们
0269-51581-0467.fits看上去不错!同样的,这个部分也不是完全必要的,但是为了以防万一,不管你需要什么,我已经把它包括进去了。我们可以再次使用strsplit函数,但这次在.上拆分,通过传递0获取第一个元素。现在,我们
0269-51581-0467去把那个小家伙分类,你就可以走了!
https://stackoverflow.com/questions/38928051
复制相似问题