How to 'cat' my dataset?
15 views (last 30 days)
Show older comments
Elias Unk
on 22 Jul 2018
Commented: Walter Roberson
on 22 Jul 2018
I have .mat files in a folder, each of them is the same size 1x500, what i want to do is to create a table where the first element will be the file name(without the mat) and the second being the loaded data file so we'll end up having an nx2 matrix n being the number of files in the folder, what i tried:
full_val = 1;
path_directory='C:\Users\me\Desktop\test_data';
original_files=dir([path_directory '/*.mat']);
for k=1:length(original_files)
filename=[path_directory '/' original_files(k).name];
original_files(k).name = strtok(original_files(k).name, '.mat');
disp(original_files(k).name)
data_line = load(filename);
full_val = cat(1,full_val,filename);
end
but i get this error Error using cat Dimensions of matrices being concatenated are not consistent which makes sense but i have hundreds of file i can't write their names manually and load each individually how to adjust my code for the task?
0 Comments
Accepted Answer
Walter Roberson
on 22 Jul 2018
You load the data into the struct data_line, but yu do not save the loaded structure. Instead, you cat(1) something that starts out as the numeric value 1, together with something that is a character vector that is the file name.
Try
full_val = 1;
path_directory='C:\Users\me\Desktop\test_data';
original_files=dir([path_directory '/*.mat']);
nfiles = length(original_files);
full_val = cell(nfiles, 2);
for k=1:length(original_files)
filename=[path_directory '/' original_files(k).name];
original_files(k).name = strtok(original_files(k).name, '.mat');
disp(original_files(k).name)
data_line = load(filename);
full_val(k, :) = {filename, data_line};
end
Though what I suspect you would want would be
fn = fieldnames(data_line);
full_val(k, :) = {filename, data_line.(fn{1})};
This extracts the first variable's value out of the loaded file.
3 Comments
Walter Roberson
on 22 Jul 2018
full_val{2,2}
This will show a struct unless you use the variation I show with fieldnames.
More Answers (0)
See Also
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!