我有三个矩阵,它们的大小不同。我需要将它们写在文本文件中。我试着写这些:
fileID = fopen('results.txt','w');
fprintf(fileID,'HEADER\n');
fprintf(fileID,'\nmatrix1 = ');
fprintf(fileID,'%d',m1,'\n');
fprintf(fileID,'\nmatrix2 = ');
fprintf(fileID,'%d',m2,'\n');
fprintf(fileID,'\nresult = ');
fprintf(fileID,'%d',m3,'\n');
fclose(fileID);
结果是:
HEADER
matrix1 = 1111121121111111111132133113132333223333213233222212112411442341243123122112323313342431432334132434333341241424433334334333412414244333343321321212221211211222213213122212112112222132232232222231222222344333342243323232333224333343324223233443243343433343333334432433434333433333233443443434443444443444344343433443434443244224343444344444443341442444434434333413133242131123132234344433432434334433124313312212222124222241243323223113222323323343212434321111433213223121241442414334232433243434434412211241211113211121224333412141433122334444444444444444444492110
matrix2 = 1221314111312212211134432433434333433333211212122212112112224334432434244434444492110
result = 1041111041031091131061021111001071031011021061081001091059792110
但这不是我所需要的。矩阵1的大小为20x28,矩阵2的大小为20x4,矩阵3的大小为1x20。它们应看起来像文本文件中的矩阵。 我还应该在同一文件中写入更多矩阵,因此当我需要在文件中写入某些内容时,不应删除先前的数据。
答案 0 :(得分:0)
这是一个包装MathWorks现有dlmwrite
的函数,该函数以您想要的方式表示文件中的矩阵。包装器对于允许文件中多个变量的不同命名是必需的:
function mwrite(filename, variableName, data, mode)
if nargin < 4, mode = 'w'; end % pass mode 'w' to overwrite or 'a' to append
f = fopen(filename, mode);
fprintf(f, '%s = [', variableName);
if numel(data) == size(data, 2)
fprintf(f, '%s];\n', num2str(data) );
else
fprintf(f, '\n');
fclose(f);
dlmwrite(filename, data, '-append');
f = fopen(filename, 'a');
fprintf(f, '];\n\n');
fclose(f);
end