Loop filenames into cell array that has numbers

Hi I am trying to create a cell array that has strings in the first column and numbers in the second but I keep getting a conversion error
mat = dir('*.mat');
nmat = length(mat);
new = cell(nmat,2);
for q = 1:nmat
matdata = load(mat(q).name);
if isfield(matdata,'DATA') && isfield(matdata.DATA, 'FastResp')
new(q,1) = {mat(q).name};
new(q,2) = matdata.DATA.FastResp.counter;
end
end

2 件のコメント

Rik
Rik 2018 年 1 月 27 日
Are you sure matdata.DATA.FastResp.counter contains a cell?
CompNsci
CompNsci 2018 年 1 月 27 日
I think it's just storing a double

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

回答 (1 件)

Rik
Rik 2018 年 1 月 27 日

0 投票

mat = dir('*.mat');
nmat = length(mat);
new = cell(nmat,2);
for q = 1:nmat
matdata = load(mat(q).name);
if isfield(matdata,'DATA') && isfield(matdata.DATA, 'FastResp')
new{q,1} = mat(q).name;
if iscell(matdata.DATA.FastResp.counter)
new(q,2) = matdata.DATA.FastResp.counter;
else
new{q,2} = matdata.DATA.FastResp.counter;
end
end
end
Note that there might be a lot of empty cells if that check for fields fails.

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

タグ

質問済み:

2018 年 1 月 27 日

回答済み:

Rik
2018 年 1 月 27 日

Community Treasure Hunt

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

Start Hunting!

Translated by