How to replace matrix value with string from cell array?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a cell array of string and a data matrix. How do I replace the value in the data matrix with the strings marked by ‘#’. I want the output to be a cell array of strings like the “output” in the script below.
cell = { '# 2.537' '1.219' '0.457' '0.214' '# 0.120' '0.245' '3.244' '# 1.400' '0.649' '0.515' '0.207' '0.075' '2.993' '1.282' '0.605' '0.309' '0.140' '0.140' '3.278' '1.507' '0.885' '0.405' '0.160' '0.111' '3.691' '1.474' '0.650' '0.316' '0.180' '0.155'}
data=[ 0.8147 0.0975 0.1576 0.1419 0.6557 0.7577 0.9058 0.2785 0.9706 0.4218 0.0357 0.7431 0.1270 0.5469 0.9572 0.9157 0.8491 0.3922 0.9134 0.9575 0.4854 0.7922 0.9340 0.6555 0.6324 0.9649 0.8003 0.9595 0.6787 0.1712]
output={ '# 2.537' '0.0975' '0.1576' '0.1419' '# 0.120' '0.7577' '0.9058' '# 1.400' '0.9706' '0.4218' '0.0357' '0.7431' '0.1270' '0.5469' '0.9572' '0.9157' '0.8491' '0.3922' '0.9134' '0.9575' '0.4854' '0.7922' '0.9340' '0.6555' '0.6324' '0.9649' '0.8003' '0.9595' '0.6787' '0.1712'}
0 commentaires
Réponse acceptée
Jan
le 2 Oct 2018
output = sprintfc('%.4f', data);
index = strncmp(c, '#', 1);
output(index) = c(index);
Plus de réponses (1)
jonas
le 1 Oct 2018
Modifié(e) : jonas
le 1 Oct 2018
Cell is a built in function so avoid using it as a variable name. Anyway, you can try this:
mask=logical(count(cell,'#'))
data=cellstr(string(a))
data(mask)=cell(mask)
data =
5×6 cell array
{'# 2.537'} {'0.0975' } {'0.1576'} {'0.1419'} {'# 0.120'} {'0.7577'}
{'0.9058' } {'# 1.400'} {'0.9706'} {'0.4218'} {'0.0357' } {'0.7431'}
{'0.127' } {'0.5469' } {'0.9572'} {'0.9157'} {'0.8491' } {'0.3922'}
{'0.9134' } {'0.9575' } {'0.4854'} {'0.7922'} {'0.934' } {'0.6555'}
{'0.6324' } {'0.9649' } {'0.8003'} {'0.9595'} {'0.6787' } {'0.1712'}
1 commentaire
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!