Hello,
I'm using csvread() to read my stored data from oscilloscope. Original file is 5000 rows long, but when I read .csv file it only reads to half of the file and every second value is 0. In the end vector is still 5000 row long but it's only half of the original. Why it does that and should I rather use textscan()?

댓글 수: 3

Stephen23
Stephen23 2017년 7월 20일
편집: Stephen23 2017년 7월 20일
>> M = csvread('U_I_MS.csv');
>> size(M)
ans =
5001 3
>> M(1:5,:)
ans =
0.00000 0.00000 0.00000
0.00000 6.00313 60.00390
0.00048 55.20310 20.50390
0.00096 65.60310 29.00390
0.00144 25.60310 2.50391
Two questions:
  1. What version of MATLAB are you using?
  2. Why does the CSV file have semicolons at the end of each line?
Niko
Niko 2017년 7월 20일
I'm using Matlab R2015a. Where do you see semicolons at the and of each line?
Stephen23
Stephen23 2017년 7월 20일
편집: Stephen23 2017년 7월 20일
@Niko: a CSV file is a text file, so I opened it using Notepad++. How do you look at a text file?

댓글을 달려면 로그인하십시오.

 채택된 답변

Jan
Jan 2017년 7월 20일

0 개 추천

I cannot imagine why your CSVREAD does not work. Perhaps you are reading the wrong file? The 2 semicolons at the end of the line are not nice, but the import should work inspite of this. Nevertheless, it is easy to import the file manually:
fid = fopen(FileName, 'r');
if fid == -1, error('Cannoten read file: %s', FileName); end
fgetl(fid); % Skip first line
Data = fscanf(fid, '%g, %g, %g ;;', [3, inf]).';
fclose(fid);

추가 답변 (1개)

Kaelasha Tyler
Kaelasha Tyler 2018년 3월 17일

0 개 추천

I have had exactly the same problem as Niko. While it is possible to manually import the file as Jan says, it would be nice to know why the csvread command is not working as it should, and what to do about it. Any further suggestions, much appreciated.

카테고리

도움말 센터File Exchange에서 Workspace Variables and MAT Files에 대해 자세히 알아보기

태그

질문:

2017년 7월 20일

답변:

2018년 3월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by