Brace indexing is not supported for variables of this type.

2 views (last 30 days)
I am getting the following error for the attached code.
Error in Readfiles (line 8)
data = readmatrix(fnames{idx});
Could you please help me out.

Accepted Answer

Ameer Hamza
Ameer Hamza on 2 Dec 2020
fname is a struct, not a cell array. Change the line to
data = readmatrix(fnames(idx).name);
  9 Comments
Ameer Hamza
Ameer Hamza on 5 Dec 2020
This code does not contain the line
data = readmatrix(fnames(idx).name);
as shown in your previous comment. In any case, N is a cell array in your case and you can acess the filenames like this
data = readmatrix(N{idx});

Sign in to comment.

More Answers (1)

KSSV
KSSV on 2 Dec 2020
% List all CSV files
fnames = dir('*.csv');
% Pre-allocate output vector
ranges = zeros(numel(fnames), 1);
% Loop over file names
for idx = 1:numel(fnames)
% Read the CSV data
data = readmatrix(fnames(idx).name);
% Get the 5th column
col5 = data(:,5);
% Get the range for this file
ranges(idx) = max(col5) - min(col5);
end
% Write the result
writematrix(ranges, 'ranges.csv');

Categories

Find more on Structures in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!