Indexing vectors in a cell matrix with for loops?

1 回表示 (過去 30 日間)
Camille Godin
Camille Godin 2021 年 6 月 7 日
コメント済み: Camille Godin 2021 年 6 月 7 日
Hello,
I have a 1x8 cell matrix. Each cell contains a 30x500 matrix. I need to combine the 3 first row vectors in each cell to form a new matrix. The new matrix needs to have 8 columns, each column representing the original cell. That being said, the 3 original row vectors have to be combined in one column vector. My final matrix will be 1500x8.
Basically, I have no idea how to index vectors from each cell to form a new matrix.
Thank you in advance.

採用された回答

SALAH ALRABEEI
SALAH ALRABEEI 2021 年 6 月 7 日
if true
% You can either use this
A{1}(1:3,:) %to extract the first 3 rows of the 1st matrix, and the same for all.
% Or convet the cell to mat, then you know the rest
B = reshape(cell2mat(A),30,1500,8);

その他の回答 (1 件)

David Hill
David Hill 2021 年 6 月 7 日
newmat=zeros(1500,8)
for k=1:8
t=yourCell{k}(1:3,:);
t=t';
newmat(:,k)=t(:);
end
  1 件のコメント
Camille Godin
Camille Godin 2021 年 6 月 7 日
Thanks! works perfectly

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

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by