Problem to read multiple .csv in a loop for.

1 次查看(过去 30 天)
Hi all,
I have one problem to read multiple ."csv" tables and also process them because appears this error message "Error using readtable (line 223)
Unable to open file 'Dailydata_(i).csv'."
%%%%Leer y extraer datos de una CSV
current_path = pwd;
close all
Irr_=ones(25,1);
for i=1:2
T = readtable('Dailydata_(i).csv', 'PreserveVariableNames', true);
I=T(:,3);
A=table2array(I); %
Irr=A(1:25);
Irr(isnan(Irr))=0;
M=max(Irr);
m=mean(Irr);
size(Irr);
Irr_=[Irr];
cd(current_path);
end
z=ones(25,2);
I2=([Irr_].*z);
  2 个评论
Rik
Rik 2020-10-22
Please do not post duplicates.
Have you tried learning to use the debugger to step through you code line by line?
If you would use the smart indentation, you would notice that you've put the cd inside your loop. Luckily it does nothing, as you didn't change the current directory (nor should you: readtable allows you to specify a full or relative path).
The line with Irr_=[Irr]; looks like you want to store something over several iterations of your loop. However, you aren't changing the variable at all here.
Tony Castillo
Tony Castillo 2020-10-22
Mr Rik, I apologize for creating a post twice, but in the first post the platforms got an error and it was the reason why I made another dealing with tha same topic.
You were right about Irr_=[Irr], I changed it to "Irr_=[Irr_, Irr];"
Thank you for your help

请先登录,再进行评论。

采纳的回答

Ameer Hamza
Ameer Hamza 2020-10-22
In the line
T = readtable('Dailydata_(i).csv', 'PreserveVariableNames', true);
MATLAB does not recognize i as a numeric value. You need to use sprintf(). For example, if file name is Dailydata_(1).csv then write
T = readtable(sprintf('Dailydata_(%d).csv', i), 'PreserveVariableNames', true);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Whos 的更多信息

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by