split matrix

7 Ansichten (letzte 30 Tage)
Bayan
Bayan am 14 Feb. 2012
we have matrix as 801* 3 and we need to split or divide this matrix to parts as 100 * 3 , the rest of matrix after split must be put in matrix also How ???

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 14 Feb. 2012
A = randi(1800,801,3);% A - Let your matrix.
A1 = A(1:end-1,:); % for this is case - size of A - [801x3]
outDouble3d = permute(reshape(A1.',3,100,[]),[2 1 3]);
or
outCell = mat2cell(A,[100*ones(fix(size(A,1)/100),1);1],3)
ADD
n = 89;
[m,k] = size(A);
t = rem(m,n);
if ~t, t = []; end
outCell = mat2cell(A,[n*ones(fix(m/n),1);t],k)

Weitere Antworten (1)

Bayan
Bayan am 14 Feb. 2012
thanks a lot ; but another problem is show : when i change 100 to another number as 89 this error appear :
_Error using ==> mat2cell at 116 Input arguments, D1 through D2, must sum to each dimension of the input matrix size, [801 3]. _
  1 Kommentar
Andrei Bobrov
Andrei Bobrov am 14 Feb. 2012
look at ADD in my answer

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by