1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

古いMATLABでcsv保存

Last updated at Posted at 2022-05-20

R2013より前を想定。最新のバージョンを使う場合は、非推奨の方法。
カンマ区切りのcsvかtxtファイルとして書き出したい。

古いMATLABで使えない関数

writetable (R2013b)
writecell (R2019a)
writetimetable (R2019a)
writematrix (R2019a)
など

保存先を作る

ファイル名と出力先が決まっている場合は
fopen
を使う。

matlab.m
fid = fopen('filename.csv', 'w');    % 新規作成もしくは上書き保存の場合
fid = fopen('filename.csv', 'a');    % 新規作成もしくはファイルの末尾にデータを追加する場合
permission 意味
'r' 読み取り用にファイルを開きます。
'w' 書き込み用にファイルを開くか、新規ファイルを作成します。既存の内容がある場合、その内容は破棄されます。
'a' 書き込み用にファイルを開くか、新規ファイルを作成します。ファイルの末尾にデータを追加します。
'r+' 読み込みおよび書き込み用にファイルを開きます。
'w+' 読み込みおよび書き込み用にファイルを開くか、新規ファイルを作成します。既存の内容がある場合、その内容は破棄されます。
'a+' 読み込みおよび書き込み用にファイルを開くか、新規ファイルを作成します。ファイルの末尾にデータを追加します。
'A' 現在の出力バッファーの自動フラッシュを行わずに、追加用にファイルを開きます。
'W' 現在の出力バッファーの自動フラッシュを行わずに、書き込み用にファイルを開きます。

ファイル保存のためのダイアログボックスを開く場合は、
uiputfile
を使う。

ヘッダーの追加

文字列をdlmwriteで保存すると、一文字づつカンマ区切りになるので、
fprintf
を使う。

matlab.m
% さっきのfidに書き込む
header = ['header1', ',', 'header2', ',', 'header3'];
fprintf(fid, '%s\n', header);
fclose(fid);
type formatSpec 説明
整数、符号付き %d または %i 基数 10
%u 基数 10
%o 基数 8 (8 進法)
%x 基数 16 (16 進法)、小文字 a–f
%X %x と同じ、大文字 A–F
浮動小数点数 %f 固定小数点表記 (小数点以下の桁数の指定には精度演算子を使用)
%e 3.141593e+00 などの指数表現 (小数点以下の桁数の指定には精度演算子を使用)
%E %e と同じだが、3.141593E+00 のように大文字 (小数点以下の桁数の指定には精度演算子を使用)
%g %e または %f をコンパクトにしたもので、後続のゼロなし (有効桁数の指定には精度演算子を使用)
%G %E または %f をコンパクトにしたもので、後続のゼロなし (有効桁数の指定には精度演算子を使用)
文字または文字列 %c 単一の文字
%s 文字ベクトルまたは string 配列。出力テキストのタイプは formatSpec のタイプと同じです。

数値配列の追加

文字列を含む場合は、ヘッダーと同じ書き方。
数値配列の場合は、
dlmwrite
を使う。

matlab.m
% さっきのfilename.csvに書き込む
M = magic(3);
dlmwrite('filename.csv', M, '-append');

'-append'は、データを既存ファイル filename の末尾に追加する意味。
この関数が、R2019a 以降は非推奨。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?