필터 지우기
필터 지우기

How I can split a matrix in four matrixes

조회 수: 11 (최근 30일)
Maryam Hamrahi
Maryam Hamrahi 2016년 6월 28일
답변: David Sanchez 2016년 6월 28일
I have a nx3 matrix and I would like to split it in four matrices with different number of rows and three columns. any help is appreciated.
  댓글 수: 3
Stephen23
Stephen23 2016년 6월 28일
So if the number of rows n is unknown, how many rows are in each of the four matrices ?
Have you tried using indexing, or mat2cell ?
Maryam Hamrahi
Maryam Hamrahi 2016년 6월 28일
Number of rows in each matrices are not important. I am applying a code whcih contains a loop and it gives me error when the number of rows are more than 10000. So, I want to split the matrix to prevent the error.
I just need split the matrix in smaller matrices.

댓글을 달려면 로그인하십시오.

채택된 답변

KSSV
KSSV 2016년 6월 28일
clc; clear all ;
A = rand(100,3) ; % rows should be greater then 4
a = size(A,1); % rows in A
n = 4; % number of partitions
out = diff([0,sort(randperm(a-1,n-1)),a]); % split rows into four random parts
% else you enter your own four numbers such that sum is size(A,1)
% four matrices
A1 = A(1:out(1),:) ;
A2 = A(out(1)+1:out(1)+out(2),:) ;
A3 = A(out(2)+1:out(2)+out(3),:) ;
A4 = A(out(3)+1:out(3)+out(4),:) ;

추가 답변 (1개)

David Sanchez
David Sanchez 2016년 6월 28일
M = rand(1001,3); % your matrix
L = size(M,1); % L = number of rows
n = floor(L/4); % number of rows for your matrices
N = cell(4,1);
for k=1:3
N{k,1} = M( ((k-1)*n+1):n*k,: );
end
N{4,1} = M((3*n+1):L,:);
% to access your matrices...
N_1 = cell2mat(N(1,1));

카테고리

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