bugfix> matlab > 投稿

CSVファイルからのテーブルからデータを抽出する(プロットできるようにする)ために、MATLABを使用して無駄に試みました。 CSVファイルは、以前に遭遇したものとは異なり、次の場所にあります。https://www.bis.org/statistics/full_webstats_credit_gap_dataflow_csv.zip

問題は、CSVファイルではすべてが二重引用符で囲まれていることです。たとえば、 「民間非金融部門」、「」、または「-57.2」。したがって、MATLAB関数 readtable を使用するとまたは textscan table2array と数字のみを含むセクションの場合、セルのベクトルとして出力します。例:1×5セル配列。 '56.6' '57' '57.2' '57.9' '58.3'

そして、個々のセルを呼び出すと、 T{1}='56.6' として出力されます 、しかし Size 1x4 としてそれを見るおよび Value '56.6' ワークスペースでは、MATLABはそれを数字56.6ではなくシンボルのコレクションとして認識します。

特定の行にあるデータをプロットできるように、MATLABでこの複雑なCSVファイルを使用する方法を教えてください。

前もって感謝します!

編集: %q などのさまざまな形式を試しました 、 readtable を使用する場合または textscan

回答 1 件
  • これを行うにはさまざまな方法がありますが、必要なデータを含むセル配列のサブセットを抽出する方法を既に理解している場合は、 str2double を使用してこれを簡単に変換できます :

    >> ca = {'56.1' '13' '12.2' '4.7'}
    ca =
      1×4 cell array
        '56.1'    '13'    '12.2'    '4.7'
    >> str2double(ca)
    ans =
       56.1000   13.0000   12.2000    4.7000
    
    

あなたの答え