How to concatenate lines in cell arrays

5 ビュー (過去 30 日間)
Hugo
Hugo 2022 年 3 月 15 日
編集済み: Stephen23 2022 年 4 月 8 日
Hi,
I have a Cell array, name DATA with 5*50 cells. Each cell has a 1000*30 matrix
I would like to obtain a new matrix that contains the concatenation of the column 1 and all lines (:,1), for all the 50 columns. I need all the lines of all cells in all columns to show up as a resulting matrix, named MR, of dimensions 40000*50.
Right now I have the following code:
for j=1:1:50
MR(:,j)=cat(1,DATA{1,j}(:,1),DATA{2,j}(:,1),DATA{3,j}(:,1),DATA{4,j}(:,1),DATA{5,j}
end
However, the code write all the columns with the same values, so definitely there is something wrong with it. Any help is appreciated.
Best regards,
  3 件のコメント
Hugo
Hugo 2022 年 3 月 15 日
Dear Jan,
I am sorry. I apologize for my mistake. Each cell of the array DATA has dimensions 1000*1
Jan
Jan 2022 年 3 月 16 日
So you have a {5 x 50} cell array containing [1000 x 1] vectors. Then I still do not understand, how you can obtain a [40000 x 50] matrix.

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

採用された回答

Voss
Voss 2022 年 3 月 15 日
% 5-by-50 cell array, each cell containing a 1000-by-1 column vector:
DATA = repmat({(1:1000).'},5,50);
% combine all cells into a 5000-by-50 matrix:
DATA_MAT = cell2mat(DATA);
  3 件のコメント
Stephen23
Stephen23 2022 年 3 月 15 日
編集済み: Stephen23 2022 年 4 月 8 日
Of course, you use your DATA array.
_ just made up some data so that they could run their code on something. Code does not run on air.
Use your DATA. Not the fake DATA that _ kindly used to demonstrate their code with.
Voss
Voss 2022 年 3 月 15 日
@Hugo: As @Stephen points out, I made up values for DATA just for demonstration purposes. In fact you may only need to run the second line of my answer (with your DATA variable), in order to do what you want:
DATA_MAT = cell2mat(DATA);

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

その他の回答 (0 件)

カテゴリ

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

タグ

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by