フィルターのクリア

How can I edit the output of xlsread to make each column of the Excel file a single variable in a structure?

3 ビュー (過去 30 日間)
JJH
JJH 2018 年 11 月 7 日
回答済み: Guillaume 2018 年 11 月 7 日
I have a set of excel files, each of which contains three columns (2 examples are included). I am converting them to .mat files using the code
files = dir('LIV Data*.xlsx');
for k = 1:numel(files)
[num,text,raw] = xlsread(files(k).name);
[dummy, myName] = fileparts(files(k).name);
save(myName)
end
which works fine. However, I then want each of the columns to be an individual variable. I can load the files using the code
D = 'My Directory';
S = dir(fullfile(D,'LIV Data T= *.mat')); % Makes a structure with all files
N = numel(S); % Counts number of files
for ii = 1:N
T = load(fullfile(D,S(ii).name));
I = T.num
end
which loads each of the data sets as three columns. I then want to separate each of these columns into a single data set so that I can plot e.g. column 1 and column 3 against each other. How can I do this?

回答 (1 件)

Guillaume
Guillaume 2018 年 11 月 7 日
Note: Use ~ to ignore a function output instead of creating a dummy variable. So:
[~, myName] = fileparts(files(k).name);
The simplest way to create variables out of your excel data is to forget about the ancient xlsread and use the modern readtable which loads the spreadsheet into a table. If your excel file has a header readtable will detect that and use it to name the variables of the table. Otherwise, it'll use Var1, Var2, ... as names but you can easily change these.
I would recommend you keep the data as a single table rather than then separating it into individual variables.
Note that if you want to plot column 3 against column 1, you don't need to create individual variables for that anyway. With your current code, it's simply:
plot(num(:, 3), num(:, 1));
As a rule, it's never a good idea to split data into individual variables.

カテゴリ

Help Center および File ExchangeSpreadsheets についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by