How do i reset a fileID value?
9 次查看(过去 30 天)
显示 更早的评论
Relatively new to MATLAB so it's probably a stupid question. But when writing my code I forgot to use the fclose function in my for loop so the value kept going up. My fid value i believe should be 34 but shows as 54 (my dataset has 34 colums). How do I sort of reset my fid value? also if anyone spots anything else wrong with the code that would be great. This is only a small portion of the code as I am just trying to get this part to work first.
close all
clear all
clc
fpath=uigetdir;
files=dir([fpath '\*.csv']);
files=char(files.name);
for n=1:size(files,1)
fid=fopen([fpath '\' files(n,:)]);
data{n}=textscan(fid, '%s %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f','Delimiter',',','CollectOutput',1, 'Headerlines',1);
fclose(fid);
data{1,n}{1,1}=datenum(data{1,n}{1,1},'dd-mmm-yyyy HH:MM:SS');
end
1 个评论
Stephen23
2022-11-25
编辑:Stephen23
2022-11-25
Some tips on looping over filenames:
fpath = uigetdir;
files = dir(fullfile(fpath,'*.csv')); % use FULLFILE rather than text concatenation.
for n = 1:numel(files) % no need for a char array...
fnm = fullfile(fpath,files(n).name); % ... you can access the structure directly.
...
files(n).data = ... optional, if you want to store any data
end
As Image Analyst wrote in your other answer, you should not convert the filenames into a character array.
采纳的回答
Star Strider
2022-11-24
Using:
should close all of them. You can then start with fid = 3.
Also, I lost count of the number of '%f' there are. You can avoid writing all that with:
['%s' repmat('%f', 1, 33)]
And I don’t understand using datenum here:
data{1,n}{1,1}=datenum(data{1,n}{1,1},'dd-mmm-yyyy HH:MM:SS');
.
15 个评论
更多回答(1 个)
Image Analyst
2022-11-25
@Victoria Snell regarding your dot indexing problem, did you not see my Answer in your duplicate question:
I show you how to fix that by creating the filename properly.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!