divide matrix into equal parts of 7 columns

조회 수: 1 (최근 30일)
soepblik
soepblik 2017년 6월 12일
답변: Star Strider 2017년 6월 13일
Hello,
i am trying to split a matrix of 999999x1 into pieces of 7x1 I am trying to use mat2cell but everytime it failed?
I found something on the matlab forum like this: Y = mat2cell(p, repmat(7,[1 size(p,1)/7]), repmat(10,[1 size(p,2)/7])); but this is not working..

채택된 답변

Star Strider
Star Strider 2017년 6월 13일
If you want to use mat2cell, this works:
v = randi(99, 999999, 1); % Create Data
v_split = mat2cell(v, 7*ones(999999/7,1), 1); % Split Into (7x1) Cells
The mat2cell function wants as its arguments dimensions for each cell. Here, there are 142857 cells, each (7x1), specified by the ‘7*ones(999999/7,1)’ argument. Your vector is a column vector, so you need only specify 1 for the number of columns for all of them.

추가 답변 (1개)

David Goodmanson
David Goodmanson 2017년 6월 12일
편집: David Goodmanson 2017년 6월 13일
Hi soepblik,
Is the first piece entries 1:7 in your matrix, the second piece entries 8:14, etc? If that's not the case then you can ignore what follows, but if it is then you can simply reshape your array into a matrix of 7 rows and 142857 columns:
A = reshape(matrix,7,142857);
compared to accessing cells, you can access each piece with A( : ,column_number)

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by