2013-03-27 119 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

相關問題