I have a folder with 10 matfiles where the first row is the time and the second raw is some data associated with the time. I want to convert all the time for the first row of each of the matfiles as a new time series using datenum. I have been able to navigate to the directory of and tried this code but it isnt working. Please is can I get some help.
mat = dir('*.mat');
for i = 1:length(mat)
load(mat(i).name);
newMat = mat(i).name(1,:);
newdate = datenum(newMat);
end

1 件のコメント

Guillaume
Guillaume 2019 年 3 月 25 日
Why not use datetime instead of datenum? It's more flexible and more reliable.

サインインしてコメントする。

 採用された回答

Stephen23
Stephen23 2019 年 3 月 25 日
編集済み: Stephen23 2019 年 3 月 25 日

1 投票

It is not required to navigate to data directories to read data:
D = 'Path of the directory where the MAT files are saved';
S = dir(fullfile(D,'*.mat'));
for k = 1:numel(mat)
T = load(fullfile(D,S(k).name));
M = T.nameOfTheVariableInMatFileWhichYouHaveNotToldUs;
newdate = datenum(M(1,:));
end
Or, assuming that the .mat files contain only one variable:
D = 'Path of the directory where the MAT files are saved';
S = dir(fullfile(D,'*.mat'));
for k = 1:numel(mat)
T = load(fullfile(D,S(k).name));
C = struct2cell(T);
newdate = datenum(C{1}(1,:));
end

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で File Operations についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by