文字列のセル配列の場合、私はC:\Users\NAME\Documents\MATLAB\@cell
またはそれに相当するユーザーパス(~/Documents/MATLAB/@cell
)に配置された次の単純な関数を使用します。 @cell
という名前は、@cell
内の関数がセル配列のみで使用されることをMATLABに通知します。あなたが従来のWindows/DOSの改行コードが必要な場合は
function csvwrite(fileName,cellArray)
fid = fopen(fileName,'w');
for i=1:size(cellArray,1)
fprintf(fid,'%s,',cellArray{i,1:end-1});
fprintf(fid,'%s\n',cellArray{i,end});
end
fclose(fid);
は、第二fprintf
呼び出しで "\ n個の\ rを" と "\ n" を交換してください。タブが必要な場合は、最初の通話の「、」を「\ t」に置き換えることもできます。
数値配列の場合は、MATLABに付属のcsvwrite
関数を使用できます。
データ型が混在するセル配列を使用する必要がある場合は、フォーマット指定子の配列を受け入れるように関数を変更する必要があります。 { 1 3 5 'string1' string2' }
あなたはたとえば、spec = '%d,%d,%s,%s'
を使用しますと類似した行と列の場合
function csvwrite(fileName,cellArray,spec)
fid = fopen(fileName,'w');
for i=1:size(cellArray,1)
fprintf([spec '\n'],cellArray{i,1:end});
end
fclose(fid);
。
これらの例に基づいて、完全に未知の配列内容がある場合に備えて、各セルのデータの型をテストし、一致する書式文字列を構成するより洗練された関数を書くことができます。
これらのセル要素が* numbers *ではなく*実際に文字列*であることを明確にすることはできますか?私の答えは文字列であると仮定しています。 –
こんにちはreve_etrange、各セルの要素は数字です。実際には、それらは文字列です、とにかく、私はstr2doubleを使用して変更することができます。私は、砂岩、泥岩、石炭などのような多くの異なるセル配列を持っていることです。そして、各セル配列は、砂岩セルアレイが12 * 2セルを持つような異なる次元を持っています。だから私はDataMatrixを作成してからdmwriteを使ってそれらのセルをテキストファイルに書き込むことを考えていました。 – Lei