2013-03-27 126 views
0

我有一段代码,其中我将数组值保存到一个.txt文件,然后在另一个函数中,我必须从.txt检索这些值到一个数组...代码看起来有点像这样...内部矩阵尺寸必须一致错误

fid = fopen('c:\\coeffs2.txt','wt'); 
fprintf(fid,'%f\n',descr2); 
fclose(fid); 

而在另一个文件中检索我是这样..

fid = fopen('c:\\coeffs2.txt'); 
des2= []; 
des2 = fscanf(fid,'%f\n'); 
fclose(fid); 

我得到的误差内矩阵维度必须同意......请帮助!

+1

这意味着两个矩阵有不同的尺寸。调试你的代码并找出它们为什么不同。 – Patashu 2013-03-27 05:34:44

+1

只要用'dbstop if error'运行它,并找出它出错的地方。 – 2013-03-27 16:50:31

回答

0

您确定这些行是产生该错误的行吗?错误发生的路线究竟是什么?通常,当你打算做元素逐个元素相乘(.*)与非方形矩阵,这将如果你这样做(例如)矩阵乘法(*)发生......

您可以使用save('c:\\coeffs2.mat', 'descr2');load('c:\\coeffs2.mat');为一种替代(更高效)的方式来存储/检索矩阵,并确保您没有更改尺寸。

您是否尝试在保存之前和检索之后查看size(descr2)给出的内容?也许你只需要一个resize ...

+0

是的,它确实在稍后阶段使用了一个点积... – aushima 2013-03-27 05:41:56

+0

因此 - 与您保存的相比,您读回的矩阵的大小是多少? – Floris 2013-03-27 05:47:38

+0

当我尝试使用保存...我得到一个错误?错误使用==>保存 参数必须包含一个字符串。 – aushima 2013-03-27 05:54:13

相关问题