我使用以下函数在MATLAB中编写和读取4098个浮点数:
写作:
fid = fopen(completepath, 'w');
fprintf(fid, '%1.30f\r\n', y)
读:
data = textread(completepath, '%f', 4098);
其中y包含4098个数字。我现在想在这些数据的末尾写入和读取3个字符串。如何读取两种不同的数据类型?请帮我。提前谢谢。
答案 0 :(得分:2)
以下是我认为您想要做的一个示例,使用TEXTSCAN来读取文件而不是TEXTREAD(将在未来版本的MATLAB中删除):
%# Writing to the file:
fid = fopen(completepath,'w'); %# Open the file
fprintf(fid,'%1.30f\r\n',y); %# Write the data
fprintf(fid,'Hello\r\n'); %# Write string 1
fprintf(fid,'there\r\n'); %# Write string 2
fprintf(fid,'world!\r\n'); %# Write string 3
fclose(fid); %# Close the file
%# Reading from the file:
fid = fopen(completepath,'r'); %# Open the file
data = textscan(fid,'%f',4098); %# Read the data
stringData = textscan(fid,'%s',3); %# Read the strings
fclose(fid); %# Close the file
答案 1 :(得分:1)
好吧,当您使用以下内容写入文件时,您可以随时写出一个字符串:
fprintf(fid, '%s', mystring);
当然,你可能想要更像你给出的形式:
fprintf(fid,'%s\r\n', mystring);
你可以将浮点和字符串混合起来:
fprintf(fid, '%1.30f %s\r\n', y, mystring);
如果您正在处理混合数据类型,如果格式不是很规则,您可能希望使用fscanf而不是textread。例如,
data = fscanf(fid, '%s', 1);
从文件中读取一个字符串。
有关如何使用它的更多信息,请查看fscanf的帮助文件。这些函数几乎都是ANSI C函数(我的意思是fprintf和fscanf),所以你可以在网上找到更多关于它们的信息。