MATLAB

2017-04-19 21 views
0

私は、MATLABでタブ区切りのTXTファイルを読み込むしようとしているにタブ区切りのテキストファイルを読み込みます。 ファイルには、数字、テキスト、日付、日付時刻、考えられるすべてのものからなる列があります。列の中には、カンマとすべてを含む非常に長い文章があります。MATLAB

これは、Excelの行制限を(iは約150万行を有する)を超えるので、私は、CSVまたはXLSXファイルに変換することができません。

私は次のことを試してみました:

tableDataEDM = tdfread(pathDataEDM,'\t'); 

私は取り戻す私はそれをファイルやフォーマット文字ベクトル間

tableDataEDM = dlmread(pathDataEDM,'\t'); 

不一致を持っていけない 「統計および機械学習ツールボックスを必要とします」。 ファイルから「数値の読み込み」の問題が発生しました

これは、ファイルにはテキストと数字と日付とその他すべてが含まれているためです。 dlmreadは数字のデータが好きだよね。

 tableDataEDM = readtable(pathDataEDM,'Delimiter','\t','ReadVariableNames',true); 

I get back: 
    Error using readtable (line 197) 
    Reading failed at line 6. All lines of a text file must have the same number of delimiters. Line 6 has 10 
    delimiters, while preceding lines have 32. 

    Note: readtable detected the following parameters: 
    'HeaderLines', 0, 'Format', '%q%q%q%q%D%D%D%q%q%q%q%q%q%q%q%q%q%q%q%q%q%q%D%D%q%q%q%q%q%q%q%q%q' 

    Error in Edm_FinderComp_CrossOver (line 33) 
    tableDataEDM = readtable(pathDataEDM,'Delimiter','\t','ReadVariableNames',false); 

私はそれがなぜこれを言うのか分かりません。私は非常に簡単にこのデータをPythonにインポートできます。これを試して、matlabに入れるのに欠けているものがありますか?

インポートタブで区切られたtxtファイルのヘルプがありがとうございます。私は痛みを伴うので、テキストスキャンを試していません。

答えて

1

textscanを使用できます。これにより、各列が別のセルに入れられます(tableDataEDM)。各行のためにそれを仮定すると、あなたが持っているint \トンint \トンstring

tableDataEDM = textscan(fopen(pathDataEDM),'%d %d %s') 

最後の引数は、あなたの書式に一致するように変更する必要があり'%d %d %s'

+0

tableDataEDM =関数textscan(のfopen(pathDataEDM)、 '%S%S%S%S%S%S%S%S%S%S%S%S%S%S%S%S%S%S% %s%s%s%s%s%s%s%s%s%s%s%s%s%s '、'区切り記号 '、' \ t ')ありがとう、私はこれを試しましたが、終了しませんでしたタブ区切りの行の一部が次の行に移動するために、作業を進めています.... textscanedテーブルのデータを開いたときに、1行のデータが2行または3行になることがあります... notepad ++このように見えますが、通常のメモ帳では行は正常です。 – brandog

+0

奇妙なことですが、ファイルが一貫してフォーマットされていないように見えます。この方法では、このメソッドが機能しなくなります。 – qbzenker

0

インポートウィザードを使用して区切り文字をタブに変更しましたか?ファイルをワークスペースウィンドウにドラッグするだけで、ウィザードが表示されます。