Matlab中用逗号分隔字符串

Matlab中用逗号分隔字符串,matlab,csv,comma,data-processing,Matlab,Csv,Comma,Data Processing,我希望在Matlab中用逗号分隔文本文件中的字符串,到目前为止,我使用了“csvwrite”和“dlmwrite” 它们通常采取以下形式: myFile - input ('Please enter file's directory','s'); readMatrix - csvread(myFile); csvwrite('newdatafile.dat', readMatrix); 澄清一下,我想做的是: 打开如下所示的文本文件: 0.3 0.1 0.5 etc 为此: 0.3, 0.1

我希望在Matlab中用逗号分隔文本文件中的字符串,到目前为止,我使用了“csvwrite”和“dlmwrite”

它们通常采取以下形式:

myFile - input ('Please enter file's directory','s');
readMatrix - csvread(myFile);
csvwrite('newdatafile.dat', readMatrix);
澄清一下,我想做的是:

打开如下所示的文本文件:

0.3
0.1
0.5
etc
为此:

0.3,
0.1,
0.5,
etc,

MATLAB的csvwrite函数将矩阵数据写入一个用逗号分隔的文件中。不幸的是,MATLAB中的字符串没有单独的数据类型,并且也表示为矩阵,因此当您在字符串上运行csvwrite时,它们会将每个字母视为一个元素,并在每个字母之间加一个逗号


您有两种选择:要么将输入存储为双精度并在其上运行csvwrite,要么使用更多的基本函数将其输出到文件(sprintf后跟fprintf到文件句柄)。

为什么需要在行的末尾使用逗号? 也适用于行包含逗号分隔数字的文件,即:

file1.dat:
02, 04, 06, 08, 10, 12
03, 06, 09, 12, 15, 18
05, 10, 15, 20, 25, 30
07, 14, 21, 28, 35, 42
11, 22, 33, 44, 55, 66


--and then in matlab:
readMatrix = csvread('file1.dat')
将读取文件并导致
大小(readMatrix)=[5 6]
(尽管每行末尾缺少逗号) 如果文件只包含一列数字(因此没有逗号),则同样适用

但是,如果您确实需要逗号,您可以读取数据并使用以下工具将其打印到文件中:


+1用于发布样本输入和输出。但更重要的是,你应该包括一些关于到底是什么不起作用的信息。在这种情况下,您还可以提供有关如何输入和存储文件的更多详细信息。阅读原始文件后,readMatrix的格式是什么?它是矩阵(如果是,大小是多少?)还是单元阵列?
readMatrix = csvread('file1.dat');
fid=fopen('file1withcommas.dat','w');
for ii=1:size(readMatrix,1)
    fprintf(fid,'%g,\n',readMatrix(ii,:));
end
fclose(fid)