1

私は rinex ファイルを持っており、ここに示されています.. rinex ファイルの最初の部分を示す画像

http://imageshack.us/photo/my-images/593/65961409.jpg

データ(AOPR Rinexファイル)は、年と日を入力してサイトからダウンロードします。

http://www.naic.edu/aisr/GPSTEC/gpstec.html

さらに処理するために、このファイルを matlab でマトリックスとして開きたいと思います。42 行目のヘッダーの終了後、時間情報は 43 行目にあります。するとデータが始まります。しかし、いくつかの行が 64 行を示した後、時間情報が再び来ています。これは破棄する必要があります。ヘッダーも破棄する必要があります。また、最後の列は、最後の列に転送する必要がある 2 番目の行として、最初の列の下に来ています。全部で 55700 行あります。これで私を助けてください。

4

2 に答える 2

0

その下の行に表示される最後の列は、テキストリーダーのウィンドウの大きさのアーティファクトにすぎないと思います...

残りの部分については、ここで試行錯誤のループが発生していると思います。

fid = fopen('test.txt','r');
C = {};
while ~feof(fid)
    % read lines with dictated format.
    D = textscan(fid, '%d %d %d %d');

    % this will fail on headerlines, empty lines, etc.
    if isempty(D{1})
        % in those cases, advance the file pointer by one line
        fgetl(fid);
    else
        % if that's not the case, save the lines thus read 
        C = [C;D]; %#ok
    end
end
fclose(fid);

% Post-process: concatenate all sub-arrays into one
C = arrayfun(@(ii) cat(1, C{:,ii}), 1:size(C,2), 'UniformOutput', false);

これは、少なくとも私の場合は機能しますtest.txt

header 
random 
garbage
1 2 3 4
4 5 6 7
4 6 7 8
more random garbage
2 5 6 7
5 6 7 8
8 6 3 7
于 2012-10-24T06:49:20.107 に答える
0

その下の行に表示されている最後の列は、テキスト リーダーのウィンドウがどれだけ大きいかによる人工物だと思います...

あとは、試行錯誤のループがここにあると思います

親愛なるロディ私は matlab のバックグラウンドがなく、初心者です。これは実際には Rinex ファイルです.2780 エポックと 30 の衛星値を持つ 6 つのオブザーバブル..matlab でデコードするのは大変です。それが問題だ。サンプル コードは次の URL で読むことができます。

http://web.ics.purdue.edu/~tdauterm/EAS591/Lab7/read_rinexo.m

しかし、問題は、オブザーバブルが 6 つあり、m ファイルには 5 つしかなく、これも正しい順序になっていないことです。C1 P2 L1 L2 S1 S2が必要ですが、リンクのコードはL1 L2 C1 P1 P2を提供します。:(それを修正していただけますか..それなら大きな助けになります..

于 2012-10-25T09:36:36.523 に答える