Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在matlab中,如何将矩阵附加到文件中的新行?_Matlab - Fatal编程技术网

在matlab中,如何将矩阵附加到文件中的新行?

在matlab中,如何将矩阵附加到文件中的新行?,matlab,Matlab,我在matlab中有一个整数值的10x1矩阵,如何将其写入行*文本*文件? 我正处于一个循环中,希望附加500多个这样的矩阵,每一个都在一行上。 fileID = fopen('exp.txt','a'); [r,c] = size(newFinalTree); for i=1:r j=1; val=newFinalTree(i,j); while val~=0 temp=reprVectors(val,:); %%%write this matrix t

我在matlab中有一个整数值的10x1矩阵,如何将其写入*文本*文件? 我正处于一个循环中,希望附加500多个这样的矩阵,每一个都在一行上。

fileID = fopen('exp.txt','a');

[r,c] = size(newFinalTree);
for i=1:r
    j=1;
    val=newFinalTree(i,j);
    while val~=0
       temp=reprVectors(val,:); %%%write this matrix to the file
       fprintf(fileID,temp); %%%this line produces error saying invalid format
       j=j+1;
       val=newFinalTree(i,j);
    end    
end
fclose(fileID);
另外,编写这样一个矩阵的最佳方法是什么,这样从c代码中读取文本文件就很容易了?

如果reprVectors()输出的是您所说的10x1,请尝试以下小改动:

fprintf(fileID, "%d %d %d %d %d %d %d %d %d %d", temp);

我认为最好的方法是将矩阵连接成
500x10
矩阵,然后使用
dlmwrite

input=randi(100,500,10);

dlmwrite(outputFilename,input)
这比自己编写容易出错,而且速度也快得多

如果格式不适合您,
dlmwrite
可以更改分隔符


fprintf
相比,
dlmwrite
的另一个优点是,
dlmwrite
自动为输入数据选择正确的格式。

如果您想存储真矩阵,
mat2str(…)
是您的朋友。您可以替换:

fprintf(fileID,temp); %%%this line produces error saying invalid format
与:

或者,如果希望文本文件中的行为temp=(某些矩阵):


使用fscanf(…)并记住矩阵分隔符是
[]
,行分隔符是
,在C中读取它们应该很容易
和列分隔符是空格。

reprvector返回什么?我认为fprintf的第二个参数必须是字符串。您可以像这样放入一个整数:fprintf(fileID,“int 1是%d,int 2是%d”,myInt1,myInt2);因此字符串中的%d是一个整数的位置
fprintf(fileID,'%s\n',mat2str(temp))
fprintf(fileID,'temp = %s\n',mat2str(temp));