2014-12-04 171 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之类的东西来代替变量名称。