Merge the multi-columns, multi-rows in one column, one row

2 vues (au cours des 30 derniers jours)
abdullah al-dulaimi
abdullah al-dulaimi le 30 Oct 2022
Réponse apportée : Chunru le 31 Oct 2022
4755×5 table
filename xmin ymin xmax ymax
________________________________________________________ ____ ____ ____ ____
Japan_000001_jpg.rf.7b3ecaac169c998a18815a31934dbbea.jpg 0 238 150 415
Japan_000001_jpg.rf.7b3ecaac169c998a18815a31934dbbea.jpg 96 287 414 319
Japan_000001_jpg.rf.7b3ecaac169c998a18815a31934dbbea.jpg 22 296 95 311
Result will be
filename Damage
________________________________________________________ _________________________________
Japan_000001_jpg.rf.7b3ecaac169c998a18815a31934dbbea.jpg [0,238,150,415; 96, 287, 414, 319; 22, 296, 95 ,311]]

Réponses (1)

Chunru
Chunru le 31 Oct 2022
var = ["filename", "xmin", "ymin", "xmax", "ymax"]
var = 1×5 string array
"filename" "xmin" "ymin" "xmax" "ymax"
T = {
"Japan_000001_jpg.rf.7b3ecaac169c998a18815a31934dbbea.jpg", 0, 238, 150, 415;
"Japan_000001_jpg.rf.7b3ecaac169c998a18815a31934dbbea.jpg", 96, 287, 414, 319;
"Japan_000001_jpg.rf.7b3ecaac169c998a18815a31934dbbea.jpg", 22, 296, 95, 31};
T =cell2table(T, "VariableNames", var);
ufn = unique(T.filename);
Res = [];
for i=1:length(ufn)
tmp.filename = ufn(i);
tmp.Damage = T{T.filename == ufn(i), 2:5};
Res = [Res; struct2table(tmp, 'AsArray', true)];
end
Res
Res = 1×2 table
filename Damage __________________________________________________________ ____________ "Japan_000001_jpg.rf.7b3ecaac169c998a18815a31934dbbea.jpg" {3×4 double}
Res.Damage{1}
ans = 3×4
0 238 150 415 96 287 414 319 22 296 95 31

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by