2

このコンマ区切りの情報をダウンロードして保存し、マトリックスとして保存してアクセスできるようにしようとしています。これまでのところ、test.csvというファイルに情報を保存する必要があると思うコードがありますが、よくわかりません。

>> urlwrite('http://xweb.geos.ed.ac.uk/~weather/jcmb_ws/JCMB_2013_Mar.csv','test.csv');

d = csvread('test.csv');



??? Error using ==> dlmread at 145
Mismatch between file and format string.
Trouble reading number from file (row 1, field 1) ==> date-
Error in ==> csvread at 50
    m=dlmread(filename, ',', r, c);

上記のエラーが発生します。urlreadを使用してデータを正常に読み取ります。正しい構文がどうあるべきか、そしてそれを行列として保存する方法を誰かが知っていますか?前もって感謝します。

4

3 に答える 3

2

URLREADを使用してファイルに保存せずに、Webから直接データを取得できます。

webdata = urlread('http://xweb.geos.ed.ac.uk/~weather/jcmb_ws/JCMB_2013_Mar.csv');

これにより、ファイル全体が'\n'で区切られた行を持つ1つの文字列として表示されます。複数の方法で処理できます。例えば:

tmp = textscan(webdata,['%s',repmat('%f',1,8)],'delimiter',',','headerlines',1);
date = tmp{1};
data = horzcat(tmp{2:end});

列ヘッダーを取得するには、次のように実行できます。

colheader = textscan(webdata,'%s',1,'delimiter','\n'); 
colheader = regexp(colheader{:},',','split');
colheader = colheader{:};

データを構造に変換することもできます。

Data = cell2struct(tmp, genvarname(colheader),2);
于 2013-03-06T22:52:32.990 に答える
0

readtext.mを使用してみてください。これは、ほとんどすべてのテキストファイルを読み取ることができるプログラムです。データの問題は次のようになります。均一な区切り文字がない、つまり2つの列が、で区切られているtab場所、。で区切られている場所comma

操作は次のように実行できます。

urlwrite('http://xweb.geos.ed.ac.uk/~weather/jcmb_ws/JCMB_2013_Mar.csv','test.csv');
data= readtext('test.csv');

動作するはずです。

于 2013-03-06T21:05:25.887 に答える
0

あなたの問題はここにあります:

Trouble reading number from file (row 1, field 1) ==> date-

Matlabは、最初のセルで「date-」に遭遇したと言います。ヘッダー行が1つか2つあると思います。ファイルをチェックインして電話をかけることができます

d = csvread('test.csv',ROW);

ここROWで、は実際のデータが開始する行の番号です(ヘッダー行の数+1)。

于 2013-03-06T22:16:21.057 に答える