2014-12-04 130 views
0

我在Matlab中遇到了麻煩。我想獲得文件中第二列所有元素的平均值,但由於某些原因代碼不包含最後一行。 我的文件看起來像這樣: enter image description here在matlab中讀取文件

我的代碼如下所示: enter image description here

正如你可能已經明白了,我的代碼獲取所有數字的平均值除了最後一個意大利。

關於如何進行的任何建議將不勝感激。

+1

將來,您是否可以複製粘貼代碼而不是放置編輯器的屏幕截圖? – nkjt 2014-12-04 12:35:03

回答

-1

你應該把

line=fgetl(fid) 

在while循環頂部。

+0

考慮到他們已經在循環之外調用了'fgetl',如果這是唯一的變化,那麼您將引入另一個bug。 – nkjt 2014-12-04 12:41:35

+0

是的,但這會提示問題。我認爲指出問題比給出正確答案更重要。無論如何,這是海報的責任。 – xgdgsc 2014-12-04 13:35:36

1

實際上,Mathworks建議不要使用feoffgetl循環,而是檢查輸出是否與ischar一致。只需將~feof(fid)替換爲ischar(line)即可。

附註:line也是一個MATLAB函數,通過將它用作變量名稱來映射函數。雖然這裏並不重要,但你應該儘量避免這樣做。如果您嘗試使用line函數或另一個函數,當您在工作區中有一個變量line時調用line,則可能會出現錯誤。這就是爲什麼你會看到幫助中的示例使用諸如tline之類的東西來代替變量名稱。