Creating a matrix from a lagrer matrix

1 回表示 (過去 30 日間)
Benedict Egbon
Benedict Egbon 2019 年 3 月 7 日
コメント済み: Benedict Egbon 2019 年 3 月 7 日
Hello everyone.
Please I need help in automatically dividing the matrix A below into three 5by 1 matrix.
A=[1
2
3
4
5
6
8
9
10
11
12
13
14
15]
Such that the first matrix created will be say
B=[1
2
3
4
5]
Thanks.

採用された回答

Akira Agata
Akira Agata 2019 年 3 月 7 日
How about the following?
In this case, C{1}, C{2}, ..., C{151} are 200-by-1 matrices each, extracted from original 30194-by-1 matrix.
% Sample 30194-by-1 data
A = rand(30194,1);
% Padding with "nan"
n = 200;
N = numel(A);
A = [A;nan(ceil(N/n)*n-N,1)];
% Divide A into 200-by-1 segments
C = mat2cell(A,repelem(n,ceil(N/n)));
  2 件のコメント
madhan ravi
madhan ravi 2019 年 3 月 7 日
reshape() is much faster
Benedict Egbon
Benedict Egbon 2019 年 3 月 7 日
Hi Akira.
Thanks for the respone.
This actually worked well for me as desired.
Regards.

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

その他の回答 (1 件)

Kevin Phung
Kevin Phung 2019 年 3 月 7 日
A = reshape(1:15,5,3); %reshaped into a 5x3 matrix.
B =A(:,1); %one of the column vectors that you desire
reading up on indexing can help:
  1 件のコメント
Benedict Egbon
Benedict Egbon 2019 年 3 月 7 日
Thank you very much for the response as this worked very well for this case.
At the moment, I have a 30194 by 1 matrix, and I want to make many 200 by 1 matrices from it.
Any suggestion on how to automate it, instead of doing B =A(:,1), C =A(:,2) etc.
Thanks.

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

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by