Hello to all!
I am trying to append some csv files into one file using the following code:
csv1 = csvread('2011_basehourlycurves_demand.csv');
csv2 = csvread('2012_basehourlycurves_demand.csv');
allCsv = [csv1;csv2];
csvwrite('combined_csv', allCsv);
However, when I try to call my data it appears the following error:
Error using dlmread
Mismatch between file and format character vector.
Trouble reading 'Numeric' field from file (row number 1, field number 1) ==>
Which I guess is because one of my varible/columns is composed by a categorical variable.
How can I fix this error? I tried using textscan, but It was not working.
Thank you in advance!

4 件のコメント

dpb
dpb 2020 年 1 月 20 日
W/O the file to look at, it's just a guess...are there headerlines?
You can try readtable, but for real help you'll have to show us the file structure...
If the task is to just do a blind copy/catenate, send that job to the OS COPY command...of course, you'll then still presumably need to read the result so we're back to the starting point--"show us the file(s)".
Dinesh Yadav
Dinesh Yadav 2020 年 1 月 23 日
As dpb commented show us your files so we can help you.
Walter Roberson
Walter Roberson 2020 年 1 月 23 日
Never use csvread for content that contains text.
Andrew Janke
Andrew Janke 2020 年 1 月 31 日
Are you doing power/electricity market analysis? Always interesting to see another Energy person in the Matlab space!

サインインしてコメントする。

 採用された回答

Ahmed Makki
Ahmed Makki 2020 年 6 月 13 日
編集済み: Walter Roberson 2020 年 6 月 13 日

0 投票

I applied the same script that you used to combine 8 csv files and it worked.
t1 = csvread('B155p1.csv');
t2 = csvread('B155p2.csv');
t3 = csvread('B155p3.csv');
t4 = csvread('B155p4.csv');
t5 = csvread('B155p5.csv');
t6 = csvread('B155p6.csv');
t7 = csvread('B155p7.csv');
t8 = csvread('B155p8.csv');
allData = [t1;t2;t3;t4;t5;t6;t7;t8];
csvwrite('combined_155.csv', allData);

1 件のコメント

Walter Roberson
Walter Roberson 2020 年 6 月 13 日
csvread() will only work for data that is all numeric; the user had categorical data.

サインインしてコメントする。

その他の回答 (1 件)

Andrew Janke
Andrew Janke 2020 年 1 月 31 日

0 投票

If you're using a newer version of Matlab, you probably want to use readtable instead of csvread. Don't forget the file extension for your output file.
t1 = readtable('2011_basehourlycurves_demand.csv');
t2 = readtable('2012_basehourlycurves_demand.csv');
allDAta = [t1;t2];
writetable('combined_csv.csv', allData);

カテゴリ

ヘルプ センター および File Exchange で Data Import and Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by