MATLAB Answers

0

How can I increase the speed of this loop?

This loop takes a long time to finish. Is there anyway I can increase the speed? Thanks
for n=0:5039
name = sprintf('%d/conformability.txt', n)
fid = fopen(name) ;
data = textscan(fid,'%f32','HeaderLines',1) ;
data = cell2mat(data)
n = length(data)
data = reshape(data,[10,n/10])
data = transpose(data)
fclose(fid);
comformability(:,n)=data(:,2)
data = []
end

  댓글 수: 0

로그인 to comment.

태그

제품


릴리스

R2018b

답변 수: 1

Jeremy Hughes 님의 답변 18 Oct 2019
Jeremy Hughes 님이 편집함. 18 Oct 2019
 채택된 답변

It's hard to say without looking at the contents of the file's you're reading.
You're overriding n in the for loop with n as the length of the data. Is that a typo?
% With some assumption about the file you're reading...
fmt = repmat({'%*f32'},1,10);
fmt{2} = '%f32';
fmt = [fmt{:}];
for K=0:5039
name = sprintf('%d/conformability.txt', K);
fid = fopen(name);
data = textscan(fid,fmt,'HeaderLines',1);
fclose(fid);
comformability(:,K+1)=data{1}; % if K == 0 this would error.
end

  댓글 수: 3

Thanks! I wll try this out. n was a typo.
I also made a typo... My "n" in the sprintf line should be "K"
Saw that! haha thanks and it worked!!

로그인 to comment.



Translated by