我有很多方法可以将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'或者'姓名'只是数据本身。
最好的方法是什么?
答案 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()语句的方式。