Changing a CSV file while keeping it readable by MATLAB
조회 수: 9 (최근 30일)
이전 댓글 표시
I have a CSV file (see attached) that I want to make alterations to, but I want to save it in the same format that it's already in. What I do is open the file using the following code (so that it's applicable to different file types):
A = fopen(x)
raw=fread(A)
fclose(A)
str=char(raw')
This produces a 1-by-n cell array that I can work with. All good, I do my changes, but then I can't save it in the same format. I can't use csvwrite because it's not in matrix format. I can use xlswrite to write it as a new CSV file, but when I use the above code to fopen it, the char conversion produces gibberish, with stuff like " @ þCúíëÀõ? ", even though it's a CSV file and looks similar to the original. How can I change the CSV while keeping it useable so that the fopen-fread-char routine still works? Thanks.
댓글 수: 2
채택된 답변
Stephen23
2018년 11월 9일
편집: Stephen23
2018년 11월 9일
'but then I can't save it in the same format.'
Yes, you can.
'I can't use csvwrite because it's not in matrix format.'
That seems possible.
'I can use xlswrite to write it as a new CSV file, but when I use the above code to fopen it, the char conversion produces gibberish, with stuff like " @ þCúíëÀõ? ", even though it's a CSV file and looks similar to the original.'
Nope. It is certainly not a CSV file. What you created (attached) is actually a binary Excel .xls file with the file extension .csv. So nothing like a CSV text file at all. I just changed the file extension and it opened as a perfect .xls file.
'How can I change the CSV while keeping it useable so that the fopen-fread-char routine still works? Thanks.'
By writing a text file, not a binary .xls file.
댓글 수: 0
추가 답변 (1개)
KSSV
2018년 11월 8일
[num,txt,T] = xlsread('C:\Users\srinivas\Downloads\Crayford01092018103600.csv') ;
T = readtable('C:\Users\srinivas\Downloads\Crayford01092018103600.csv') ;
Use either xlsread or readtable. Make changes in T, and write into file using xlswrite or writetable.
댓글 수: 2
KSSV
2018년 11월 9일
You can use xlsread s below:
[num,txt,raw] = xlsread(myfile) ;
Now raw, will have all the data of excel file. No change in the data.
참고 항목
카테고리
Help Center 및 File Exchange에서 Text Files에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!