Create table in a for loop with text

7 ビュー (過去 30 日間)
Doron Joffe
Doron Joffe 2021 年 11 月 21 日
コメント済み: Doron Joffe 2021 年 11 月 24 日
I am creating a table in a for loop in Matlab. The table should contain the answer for each iteration of the loop.
On each iteration the, the answer that is produced is the name of a soccer player. I want to create a table that stores the list of the names of soccer players. For example
Player
Ronaldo
Messi
When I write the below code, it comes out as NaN.
  1 件のコメント
Image Analyst
Image Analyst 2021 年 11 月 21 日
After you read this:
attach one of your CSV files and your m-file. We cannot run an image and can't run an m-file with no data.
And I think B should be
B = cell(length(files), 1);
before the loop.

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

回答 (2 件)

Yongjian Feng
Yongjian Feng 2021 年 11 月 21 日
編集済み: Yongjian Feng 2021 年 11 月 21 日
Try this:
files = dir('*.csv');
B = {};
for i = 1:length(files)
csv = readtable(files(i).name, 'Range', 'A1:I8'); % Double check please to make sure
Player = csv(1,2);
Player = table2array(Player) % no ; here, print it out for debug. put it back later
%Player=str2double(Player); % WHY? A player's name can't be converted
%to double
B{end+1} = Player;
end
T = table(B', 'VariableName', {'Player'})
  2 件のコメント
Peter Perkins
Peter Perkins 2021 年 11 月 23 日
編集済み: Peter Perkins 2021 年 11 月 23 日
This
Player = csv(1,2);
Player = table2array(Player)
can't be the best way to do this. More than likely
Player = csv{1,2};
or (much) better yet:
Player = csv.Player(1) % or whatever column heading is in the file
Doron Joffe
Doron Joffe 2021 年 11 月 24 日
Thank you very much. This worked perfectly.

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


Sean de Wolski
Sean de Wolski 2021 年 11 月 23 日
Confused as to why you're using excel ranges with csv input. Either way, this should be doable in one shot with readall(datastore).
ds = datastore("*.csv")
ds % MODIFY the settings to only read the (1,2) element. Specify header rows, text type as string, etc.
T = readall(ds)

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by