Problems with fscanf

13 次查看(过去 30 天)
Ricardo
Ricardo 2011-5-14
[EDIT: Sat May 14 02:19:15 UTC 201 - Reformat - MKF]
Why is this wrong ?
fid = fopen ('dados.txt', 'r');
dados = fscanf(fid, '%g %g', [9 inf]);
fclose (fid);
dados = dados' ;
This is what I have at my "dados" file:
20000 218.66 224.29 222.77 99.42 96.92 97.58 0.81 2.59
... A (3000x9) matrix with numbers like that
And this is what MATLAB suggests :
??? Error using ==> fscanf
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in ==> programa at 2
dados = fscanf(fid, '%g %g', [9 inf]);
  1 个评论
Walter Roberson
Walter Roberson 2011-5-14
Note: you will want
dados = fscanf(fid, '%g', [9 inf]) .';
if you want the resulting matrix to be row-oriented like the input is.

请先登录,再进行评论。

采纳的回答

Ricardo
Ricardo 2011-5-14
Hahaha, sorry, but I found the answer, the guy who has sent me the file saved it as "dados.txt" so the name of the file isn´t only "dados".
  2 个评论
Walter Roberson
Walter Roberson 2011-5-14
but in your problem statement, you are opening dados.txt already ?
Matt Fig
Matt Fig 2011-5-14
I think Ricardo means that the full name of the file, including extension is:
dados.txt.txt

请先登录,再进行评论。

更多回答(1 个)

Matt Fig
Matt Fig 2011-5-14
For some reason FOPEN did not find dados.txt. Is it in your current directory?

类别

Help CenterFile Exchange 中查找有关 Low-Level File I/O 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by