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

5 views (last 30 days)
Tatjana Mü
Tatjana Mü on 23 Jun 2022
Answered: Star Strider on 23 Jun 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 :-)

Answers (2)

KSSV on 23 Jun 2022
I hope, your data is in a file.
T = readtable(myfile) ;
T(T.(2)==0,:) = [] ;
KSSV on 23 Jun 2022
How is your data? What class it is? Attach your data into a matfile.

Sign in to comment.

Star Strider
Star Strider on 23 Jun 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).

Community Treasure Hunt

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

Start Hunting!