在Matlab中写入文本文件

时间:2013-11-29 15:51:43

标签: matlab text file-io

我有很多方法可以将matlab数据写入.txt文件,但我不确定哪种方式最适合我的需求 - 我有两组数据标记为' x'并且' y'其中数据只是向下运行1列(A1 .... An),我需要一个以制表符分隔的.txt文件:

Name   X    X    Y
Test   2    2    5.5
Test   3    3    6.5
Test   4    4    7.5

等...

因此,我可以有两个相同的X数据列,然后是Y数据。我还需要能够输入一些名称'姓名'将自身复制到X / Y中的数据停止的列。我不需要任何列标题,即' X' ' Y'或者'姓名'只是数据本身。

最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

一种方法是先将所有内容放入一个单元格中:

Name = repmat({'Test'}, [1 DataSize]); % A Cell containing n 'Test' string

C = [Name num2cell(X') num2cell(X') num2cell(Y')]; % Concatenating cells

然后使用fprintf将单元格写入文件:

fid = fopen('data.txt', 'wt');
fprintf(fid, '%s\t%d\t%d\t%d\n', C{:});
fclose(fid);

希望它有所帮助。

答案 1 :(得分:0)

运行此代码示例,您可以检查它是否符合您的要求:

% Example data:
x = [1:5];
y = rand(1,5);

fileID = fopen('yourfile.txt','w');
for i = 1:length(x)
    fprintf(fileID,'%s\t%d\t%d\t%f\n', 'Test', x(i),x(i),y(i));
end
fclose(fileID);

打开文本文件,您将看到如下内容:

Test    1   1   0.655741
Test    2   2   0.035712
Test    3   3   0.849129
Test    4   4   0.933993
Test    5   5   0.678735

如果希望字符串'Test'的值在每行中更改,只需传入一个包含这些字符串值的数组,类似于x和y变量传递给fprintf()语句的方式。