Importing CSV - Selecting Specific Variables or Ignoring Variables
13 views (last 30 days)
I have the code below to import a CSV file as part of an app I'm building. Initially, I would manually modify some of the CSV files before importing.
The CSV files have data that are pairs of variables (datetime and YVar). I only need one datetime column and want to omit the rest. How would I be able to omit the alternate columns or only accept one datetime column?
Secondly, where I import the Y variables from attach "ValueY" to the variable name. Is there a way I can get Matlab to remove this?
Also, below this section of code, I use the variable names in drop down lists for the user to select for plotting in the app.
I'm using matlab version 2020b.
[file] = uigetfile('*.csv');
msgbox('Please input a CSV file')
%Read data from file
opts = detectImportOptions([file], "NumHeaderLines", 24, "VariableNamesLine", 1, "VariableNamingRule","preserve");
opts.Delimiter = ",";
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
opts = setvaropts(opts, [1 1], "InputFormat", "dd/MM/yyyy HH:mm");
app.SD = readtable([file], opts);
Nitin Kapgate on 8 Feb 2021
You can refer to the following code snippet to resolve your problem:
% read an inbuilt spreadsheet
opts = detectImportOptions('airlinesmall_subset.xlsx');
opts.Sheet = '2007';
% define the variable indices which you want to read
% 2:2:10 ensures that we read alternate columns from the sheet
% Modify the indices as per your requirement
varIndex = [1, 2:2:10]
opts.SelectedVariableNames = varIndex
% Observe selected variables
opts.DataRange = '2:11';
M = readmatrix('airlinesmall_subset.xlsx',opts)