divide matrix into equal parts of 7 columns

조회 수: 3 (최근 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에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by