3

Matlab でデータベースからデータを読み取る際に問題が発生しています。データをダウンロードするために使用するURLリンクは、セミコロンで区切られたテキストファイルを提供し、たとえば、このデータを識別し、それに応じてstructフォーマットに配置するにはMatlabが必要です(データには異なるクラスがあるため)。私はすでに使用urlreadしており、データを正常にダウンロードできました。唯一の問題は、すべてのデータを 1 つのセル内の文字列として取得していることです。

基本的に、R の関数と同じ方法で URL から Matlab にデータをロードできるかどうかを知りたいと思いread.csvます。ここでは、ファイル名の場所に URL を配置し、データの区切り方とビオラを定義するだけです。data.frameすべてのデータを必要に応じて完全に整理してください。

使用後に文字列を解釈しurlreadて何らかの形で整理された変数に変換する方法もあると思いますstructが、R のように URL から直接読み取る方法が必要です。

4

2 に答える 2

5

csvこれは、Web からデータを読み取り ( urlread)、textscanデータをスキャンしてセル (文字列とスカラーが許可されている) にフォーマットし、セルを で構造体に変換するコードの一部ですcell2struct。作成された構造はtextscanフォーマットを保持します。

textscanデータに合わせてフォーマットとcell2struct入力を定義する必要があることに注意してください。

block = urlread('http://hci.stanford.edu/jheer/workshop/data/florida2000/Florida2000.csv');
C = textscan(block,'%s%s%f%s%f','HeaderLines',1,'EndOfLine','\n');
S = cell2struct(C,{'county','technology','columns','category','ballots'},2)

2000 年のフロリダ大統領選挙の結果は次のとおりです ( .csv、938 データ ポイント)

county,technology,columns,category,ballots
Alachua,Optical,1,under,217
Alachua,Optical,1,over,105
Alachua,Optical,1,Bush,34124
Alachua,Optical,1,Gore,47365
Alachua,Optical,1,Browne,658
Alachua,Optical,1,Nader,3226
Alachua,Optical,1,Harris,6
...

それが生み出す

S = 

    county: {938x1 cell}    %string
technology: {938x1 cell}    %string
   columns: [938x1 double]  %double
  category: {938x1 cell}    %string
   ballots: [938x1 double]  %double

編集

二重引用符で囲まれたテキストの場合、そのように呼び出し(FormatSpec options%qの代わりに使用できます%stextscan

C = textscan(fileID,'%q%f');
于 2013-09-03T12:53:05.557 に答える
0

という関数を調べdlmreadます。これにより、データの文字列を入力し、区切り文字を指定して、必要なものを出力することができます。

dlmread

results = dlmread('http://someurl.com/somefile.txt',';')
于 2013-09-03T12:39:24.377 に答える