How do i reset a fileID value?
16 ビュー (過去 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 で Data Import and Export についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!