私はGUIを書いています。ここには、測定のデータを含む.csv
ファイルがロードされています。ファイルには、明確に定義されている:Matlab:読み込みに失敗する可能性があります.csv
<variable>(<unit>),<variable>(<unit>),...
0.005,NaN,...
と私はVars
、Units
とData
でそれを処理しています:
A=importdata('foo.csv',',');
Data=A.data;
[Vars,Units]=ProcessHeaderLine(A.colheaders);
問題は、データの一部が破損している場合に発生する - の代わりに番号の文字列がセル内にあり:
<variable>(<unit>),<variable>(<unit>),...
0.005,"- N/A - ",...
その場合、importdata
機能を実行するために長い時間がかかり、エラーがスローされます。
Error using importdata (line 136)
Unable to open file.
Error in <.m file> (line 384)
A=importdata('foo.csv'],',');
このアプローチは、ヘッダとデータの両方を処理する能力を有するがtry-catch
より速い方法であり、文字列「細胞containigデータを処理することができます"?
MATLABは、数値のみのデータファイルを処理するのに最適です。文字列データではそれほど優れているわけではなく、MATLAB読者の誰もレコードの種類を変えることのできるデータではうまく機能しません。あなたの例は、不均衡な引用符を表示しているので、特に問題があります! "文字列"のデータがほぼ同じで、実際のデータが利用できなかった場合のマーカーである場合は、データファイルを前処理することをお勧めします。文字列(この場合は '" N/A')をあなたのアプリケーションにとって有効でない数値(おそらく '-1'?多分' 999999'?)に置き換えてください。 – gariepy
@gariepy文字列は '' -N/A - "実際には、私は問題を特定することができ、半自動で修理することができますが、私はここ(研究室内)の唯一の人であり、それをトレースして直面するほど狂っています。保証されていない封印されたブラックボックス... – Crowley
テストファイルのうちの1つが故障しています - 列全体に文字列が含まれていますが、なぜ「N/A」フラグがあるのかわかりません。私は2行目の文字列を探してファイルを扱う方法を決定するのに十分かどうかわからない。 – Crowley