Delete rows in a string array, if they just contain zeros

7 vues (au cours des 30 derniers jours)
Tatjana Mü
Tatjana Mü le 23 Juin 2022
Good Morning,
I have a string array (Mineralien_RL): The first column are text and the following are numbers.
I want to delete all the rows which just contains zeros (Like the one here in line 40).
I tried it this way:
Mineralien_RL(:,all(Mineralien_RL(:,2:end) == "0"))=[];
But it deletes nothing.
I appreciate any help :-)

Réponses (2)

KSSV
KSSV le 23 Juin 2022
I hope, your data is in a file.
T = readtable(myfile) ;
T(T.(2)==0,:) = [] ;
  2 commentaires
Tatjana Mü
Tatjana Mü le 23 Juin 2022
Sadly not. Its the end of a calculation. I want to delete the zero rows, so that I dont export files with over 5000 rows.
KSSV
KSSV le 23 Juin 2022
How is your data? What class it is? Attach your data into a matfile.

Connectez-vous pour commenter.


Star Strider
Star Strider le 23 Juin 2022
It would help to have the data you are working with.
With respect to troubleshooting —
First, see what the logical statement itself produces:
Lv = all(Mineralien_RL(:,2:end) == "0")
truevals = nnz(Lv)
then experiment, for example with variations of it:
Lv = all(Mineralien_RL(:,2:end) == 0)
truevals = nnz(Lv)
When you get the logic working, rather than deleting the rows you do not want, retain only the rows you want:
Mineralien_RL = Mineralien_RL(~Lv,:);
That is likely easier (at least it has been in my experience).
.

Catégories

En savoir plus sur Cell Arrays 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!

Translated by