delete rows in a table

231 次查看(过去 30 天)
Hi, I need help to delete several rows of a table whose column has a zeros for example
column 1 column2
1 2
3 2
4 0
5 6
1 0
9 0
I need delete the rows number 3,5 and 6

采纳的回答

Guillaume
Guillaume 2018-5-24
Assuming you indeed have a matlab table:
yourtable(yourtable.column2 == 0, :) = [];
will delete all rows whose column2 is 0.
If your table is actually a matrix:
yourmatrix(yourmatrix(:, 2) == 0, :) = [];
will do the same.
  1 个评论
Jessica Blasco
Jessica Blasco 2018-5-24
thankssss!!!! it worksss!!! is what I wanted to do it!!

请先登录,再进行评论。

更多回答(1 个)

Alfonso
Alfonso 2018-5-24
编辑:Alfonso 2018-5-24
Try this
% define your table
table_array = [1 2; 3 2; 4 0; 5 6; 1 0; 9 0];
% search index rows
[index_row index_col] = find(table_array==0);
% delete
table_array( index_row, : ) = [];
  2 个评论
Guillaume
Guillaume 2018-5-24
编辑:Guillaume 2018-5-24
Since you never use index_col, you can write:
[index_row, ~] = find(table_array == 0); %force the two output version of find.
A simpler version of the whole lot:
table_array(any(table_array == 0, 2), :) = [];
My understanding however is that the 0s are only in column 2
Jessica Blasco
Jessica Blasco 2018-5-24
thank you very much, it works to matrix very well, buy I have a table. First of all , I had table2array, but later, other partner said me the solution by tables!
even so, thanks! good job!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by