2016-08-13 2 views
0

私はそれ

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の配列をソートしたいとしてクエーサーのURLを持つ配列が保存されています。私はsortで配列をソートしましたが、1があるので、常に3rdの行と2nd lastの行を先頭に持っていたので、助けになりませんでした。

私はあなたがいつもこのパターンを持っている場合は、あなたが試すことができます。この

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 

答えて

1

のような出力を持っているしたいと思います:

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 
0123で始まります

まず、/文字にURLを分割します。これは、この文字から分割された文字列のベクトルを返します。ソートする番号は最終的に/の後にあるので、endに最後のものを渡すことができます。今、私たちは

spec-0269-51581-0467.fits 

次は、番号からその厄介なspec-を削除せてきました。このステップは、すべてのURLにわたって一定であるため、実際には必要なものはではありませんが、楽しいものにしましょう。 -の後の文字を取得するのに、fileName(5:end)を使ってMatlabの部分文字列を使うことができます。これは、5番目の文字(この場合はa 0)で始まる文字列を作成し、最後まで続きます。素晴らしい今、私たちは持っている

0269-51581-0467.fits 

良いよ!繰り返しますが、この部分も完全に必要なわけではありませんが、何らかの理由で必要な場合に備えて、私はそれを含めました。我々は

0269-51581-0467 

先とソートその小さな男を移動して、あなたがに優れているを持って、再びstrsplit機能を使用していますが、.上のこの時間分割、と今は0を渡すことで、最初の要素をつかむことができます行く!

+1

ありがとう、私はあなたの最初の答えの変種を使用しました。私の仕事を終えて「ありがとう」にここに来ました。私は '-'で分割することで仕事をしてくれました。そして、それは私に4つの文字列を与え、2番目をソートし、そのインデックスを使っていました:[this](http://stackoverflow.com/questions/37948031/removing-固有値と並び替え以外のベクトル)と[this](https://www.mathworks.com/matlabcentral/answers/160560-access-cell-array-inside-another-cell-array)の質問:私はもう一方をソートし、完全なURLを返すために 'strcat'と組み合わされています。 –