How will my program read large data in a loop?

I have data sets for about a 1000 objects. Each data set is a matrix with 'different no. of rows for each * 2 columns' as the matrix order. Now, I have called all the data sets in my current folder using:
files = dir('*.txt');
for i=1:length(files)
eval(['load ' files(i).name ' -ascii']);
end
which stores them as matrices X1, X2, et al. I need to assign each column of each matrix to a different variable for each, in a loop because writing separately for each object is not possible given the large number of data sets.
How do I do that?

1 个评论

Avoid using eval for such trivial code. Learn to not use eval and your code will be more robust and easier to read.... Read this to know why:

请先登录,再进行评论。

 采纳的回答

I suggest something like
files = dir('*.txt');
data = cell(length(files),2);
for i=1:length(files)
thisdata = load(files(i).name, '-ascii');
data{i,1} = thisdata(:,1);
data{i,2} = thisdata(:,2);
end

2 个评论

Hm, thank you very much for your continued help.
@Prakriti Sardana: There is always a better solution than eval.

请先登录,再进行评论。

更多回答(0 个)

类别

标签

Community Treasure Hunt

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

Start Hunting!

Translated by