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

3 views (last 30 days)
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
KSSV on 23 Jun 2022
I hope, your data is in a file.
T = readtable(myfile) ;
T(T.(2)==0,:) = [] ;
  2 Comments
Tatjana Mü
Tatjana Mü on 23 Jun 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 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).
.

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!