前几天遇到将一个50行50列的矩阵,每一行都是0-49。写入到一个txt文件的问题。
第一步:产生一个每一行都是0-49的50行50列的矩阵
这一步方法很多,什么双for循环嵌套,repmat函数,单个赋值都可以
这里采用repmat函数,并浅析用法。
repmat (A, M, N),当A是标量时,repmat (A, M, N)通常用于生成一个M × N矩阵。当A是一个数组或矩阵时,是在生成的M × N矩阵的每一个元素位置都放一个A,例子如下
a=[1 2 3];
repmat(a,3,1),结果为
repmat(a,3,2),结果为
所以生成矩阵代码为
a=0:1:49;
A=repmat(a,50,1);
将数据写出也有许多函数可以实现,这里用fprintf函数。整体代码为
fileID = fopen('data.txt','wt');
a=0:1:49;
A=repmat(a,50,1);
% mat=A;
[m,n]=size(A);
for i = 1:1:m
for j= 1:1:n
if j==n
fprintf(fileID,'%1.0f\n', A(i,j));
else
fprintf(fileID,'%1.0f\t', A(i,j));
end
end
end
fclose(fileID);
fprintf读出为一位一位的读,注意区分 \t 与 \n 的使用时机。