identifying the elements of a cell

1 回表示 (過去 30 日間)
CLARK KENDRICK GO
CLARK KENDRICK GO 2018 年 7 月 10 日
コメント済み: Sammit Jain 2018 年 7 月 10 日
I have a 700x8 cell, with each cell having a matrix 6x2 in size. I want to get the first row of each cell. How do I perform this?

採用された回答

Mandeep  Singh
Mandeep Singh 2018 年 7 月 10 日
編集済み: Mandeep Singh 2018 年 7 月 10 日
From my understanding of the question, you can achieve the required task by following snippet of code:
cnt = 1;
for i = 1:700
for j = 1:8
a(cnt) = C{i,j}(1,:); % stores the first row of each cell in a;
cnt = cnt + 1;
end
end
  1 件のコメント
Sammit Jain
Sammit Jain 2018 年 7 月 10 日
I think using a for loop will be slightly computationally expensive in this case.

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

その他の回答 (1 件)

Sammit Jain
Sammit Jain 2018 年 7 月 10 日
Hi, This seems to be a simple case of cell indexing.
Let's call your original cell array (of cells) 'mainCellArray'
Now, let's have allRowsArray = [mainCellArray{:}] Then, firstRowArray = [allRowsArray{1,:}]
Essentially, we're first re-arranging the contents of the main cell array, stacking them one next to the other, then we just index the first row.
Here's what the code should look like:
allRowsArray = [mainCellArray{:}];
firstRowArray = [allRowsArray{1,:}]
Hope this helps. If in case you want to pick a different combination of rows/columns, then just try to transpose these concatenations and see if you get what you want.
Cheers.

カテゴリ

Help Center および File ExchangeMultidimensional Arrays についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by