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

7 Ansichten (letzte 30 Tage)
Tatjana Mü
Tatjana Mü am 23 Jun. 2022
Beantwortet: Star Strider am 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 :-)

Antworten (2)

KSSV
KSSV am 23 Jun. 2022
I hope, your data is in a file.
T = readtable(myfile) ;
T(T.(2)==0,:) = [] ;
  2 Kommentare
Tatjana Mü
Tatjana Mü am 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 am 23 Jun. 2022
How is your data? What class it is? Attach your data into a matfile.

Melden Sie sich an, um zu kommentieren.


Star Strider
Star Strider am 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).
.

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by