How can i delete every n-th row in a cell array

3 ビュー (過去 30 日間)
Manu Mensa
Manu Mensa 2020 年 12 月 4 日
コメント済み: Manu Mensa 2020 年 12 月 7 日
I have a cell array like C=cell(10,1). I want to delete every n-th row of the cell and have the result in a cell array with.
I have used
rowstodel=1:10
p(rowstodel(1),:)=[]; % delete first row
However, i want the resulting 9x1 results in a cell array. I have tried using a for loop but i keep getting 'matrix is out of range for deletion'
Thanks

採用された回答

Image Analyst
Image Analyst 2020 年 12 月 5 日
編集済み: Image Analyst 2020 年 12 月 5 日
Try this:
C = cell(10,1) % Create a cell array (column vector) of 10 individual cells (empty ones).
whos C
% Delete very 3rd row starting at 1 by setting those rows to null.
% I.e. delete cells 1, 4, 7, and 10
% leaving only 6 cells in the cell array.
C(1:3:end) = []
whos C
you'll see:
C =
10×1 cell array
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
Name Size Bytes Class Attributes
C 10x1 80 cell
C =
6×1 cell array
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
{0×0 double}
Name Size Bytes Class Attributes
C 6x1 48 cell
See the FAQ:
  3 件のコメント
Image Analyst
Image Analyst 2020 年 12 月 6 日
So simply make a copy of it before you delete the rows:
C = cell(10,1) % Create a cell array (column vector) of 10 individual cells (empty ones).
whos C % Has 10 rows and one column. Each element is a cell, which is empty so far.
% Delete very 3rd row starting at 1 by setting those rows to null.
% I.e. delete cells 1, 4, 7, and 10
% leaving only 6 cells in the cell array.
C2 = C; % Make a copy.
% Delete the rows from the copy.
C2(1:3:end) = []
whos C2
Manu Mensa
Manu Mensa 2020 年 12 月 7 日
Thank you, Image Analyst.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by