Make a table with variable names which are saved as strings.

Let's assume that there are data files having a column of nubmers.
abc.dat
cdc.dat
usa.dat
I'd like combine them into a table.Can I use the file names as variable names?
ex) table T =
abc cdc usa
10 100 5
20 200 10
30 300 15
40 400 20
50 500 25
Matlab table is great for handling my data, but I am struggling to name variables.
I was looking at the 'eval' function, but it was not recommended from many thread here.

 採用された回答

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021 年 6 月 6 日

0 投票

filename = {'abc', 'bcd', 'cde'};
A = magic(3);
T = array2table(A, 'variablenames', filename);

2 件のコメント

Myung Hyun Jo
Myung Hyun Jo 2021 年 6 月 6 日
Thank you!
Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021 年 6 月 6 日
Most Welcome!

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2021 年 6 月 6 日

0 投票

dinfo = dir('*.dat');
filenames = {dinfo.name};
T = table();
for K = 1 : length(filenames)
thisfile = filenames{K};
[~, varname, ~] = fileparts(thisfile);
thisdata = load(thisfile, '-ascii');
T.(varname) = thisdata;
end

カテゴリ

製品

リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by