0

Matlab 2012a を使用して、dlmwrite を使用して <1x19 cell> を CSV ファイルに追加しています。cell 配列には、17 個の数値と 2 個の空白が含まれます。結果: 17 個の値がターゲット csv ファイルに書き込まれますが、2 つの空白がありません。以下のコードを使用しています。

    Output=num2cell([var1,var2,var3....var19]);
    Output(cellfun(@isnan,Output)) = {[]};
    dlmwrite('Target.csv',Output_m,'-append');

コマンド ウィンドウでコードを実行すると、出力に空白が表示されます。

    Output = 

    Columns 1 through 10

    [19]    [2]    [137.5994]    [0]    []    [501.3610]    [38.4230]    [0]    [0]    [4.9160]

    Columns 11 through 19

    [4.9160]    [38.4230]    [0]    [38.4230]    [501.6580]    []    [-1.2590]    [0]    [0]

しかし、csv ファイルに追加すると、空白は消えます。

ありがとう。

4

1 に答える 1

1

これはドキュメントに記載されています:

dlmwrite(filename,M) は、配列要素を区切るために既定の区切り記号 (,) を使用して、配列 M の数値データを ASCII 形式のファイル filename に書き込みます。ファイル filename が既に存在する場合、dlmwrite はそのファイルを上書きします。

数値以外のデータは無視されるため、データが失われます。

この問題を解決する 1 つの方法は、次のような数値を記述し-Inf、ポスト プロセッサを使用してそれらの要素を削除することです。

于 2013-10-10T03:00:18.020 に答える