Creating more than one matrix from 1 matrix

조회 수: 4 (최근 30일)
RUDRAKSH
RUDRAKSH 2016년 5월 31일
편집: Andrei Bobrov 2016년 5월 31일
I have a matrix of order nx2 (n is more than 3000)
I want to brake this matrix into multiple matrix of order 300x2 as well as name them eg: matrix1 = (1:299)x2 matrix2 = (300:500)x2 . . . matrix10 = (2700:2999)x2 and so on
can anyone know how to do this through script.

답변 (3개)

Walter Roberson
Walter Roberson 2016년 5월 31일
You are much better off using mat2cell() to create a single cell array
mat2cell(YourMatrix, 300 * ones(1,10), 2)

KSSV
KSSV 2016년 5월 31일
You may also consider converting it into a 3D matrix
iwant = reshape(yourmatrix,[300,2,3000/(300)]);
You can access the matrix by iwant(:,:,i) i = 1,2,...10

Andrei Bobrov
Andrei Bobrov 2016년 5월 31일
편집: Andrei Bobrov 2016년 5월 31일
[m,n] = size(yourmatrix);
% k - number rows in new array(s)
% if rem(m,k) ~= 0
out1 = mat2cell(A,accumarray(ceil((1:m)/k)',1),n);
out2 = permute(reshape([A; nan(mod(-m,k),n)].',n,k,[]),[2 1 3]);

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by