Extract variable from .mat files

15 次查看(过去 30 天)
Haresh Kumar
Haresh Kumar 2020-11-9
评论: Stephen23 2020-11-13
Hello,
I have mutiple .mat files which I am running in a for loop. I want to extract the data from the specific variable of .mat file. I tried .variable commond, but it didnot work. Could you please suggest me which commond will I use in this case?.
Here is the attached code:
S = dir('*.mat');
LT= [];
for i=1:length(S)
disp(S(i).name)
T = readtable((S(i).name.(A));
Where, A is the vaiable from which I want to extract the data and all .mat files are in tabular format.
Br,
Haresh Kumar
  4 个评论
Haresh Kumar
Haresh Kumar 2020-11-9
I want to read the frrom one specific variable of table (which is in .mat file) and then want to apply the rest of algorithm.
Stephen23
Stephen23 2020-11-9
"...all .mat files are in tabular format."
Please upload a sample file by clicking the paperclip button.

请先登录,再进行评论。

回答(2 个)

Rik
Rik 2020-11-9
编辑:Rik 2020-11-9
I think I understand what you mean. You will have to use load to load a variable from a mat file:
S = dir('*.mat');
LT= [];
for n=1:length(S)
A=load(fullfile(S(n).folder,S(n).name));
T=A.A;
%remainder of your code here
end
  4 个评论
Stephen23
Stephen23 2020-11-9
@Rik: probably one of those S variables should be renamed.
Rik
Rik 2020-11-9
Thanks for the comment. I guess I shouldn't edit code on autopilot (I always load to S). I'll edit my answer.

请先登录,再进行评论。


Stephen23
Stephen23 2020-11-9
D = 'absolute/relative path to the folder where the files are saved';
S = dir(fullfile(D,'*.mat'));
for k = 1:numel(S)
F = fullfile(D,S(k).name);
T = load(F);
T.A
end
  4 个评论
Haresh Kumar
Haresh Kumar 2020-11-13
Hello,
Thank you for providing the breif information about this commond. I also want to delete the -ve entries from variable (A) before applying the rest of code and for that I am using this commond:
K=T.A;
If K <0
K=[]
else
K= K
But it doesnot work. Could you please guide me how can I solve this problem?.
Br,
Haresh Kumar
Stephen23
Stephen23 2020-11-13
The MATLAB way is to use logical indexing:
K = T.A;
K(K<0) = []

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Tables 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by