divide data to 100 input files
이전 댓글 표시
I have a numeric data set as a 1xn (for example 1x32768) matrix, and I want to divide it into m files (for example 100 files) and making directories and send each file to corresponding directory. I did use the following code: reshape(Data,[],100); but problem is 32768 is not divisible to 100. is there any way for solve my issue? or I have to reduce my data to 32700? Any help is appreciated.
댓글 수: 3
Walter Roberson
2016년 5월 16일
What do you want to have happen with the block of 68?
Holden Caulfield
2016년 5월 17일
Walter Roberson
2016년 5월 17일
If you need to do this for each data set, why are you grouping them into 100's ?
답변 (2개)
Aritra Sasmal
2016년 5월 16일
편집: Walter Roberson
2016년 5월 16일
I don't understand why you want to reshape it but here's how you'd do it if you wanted to form a matrix like you have;
n=size(Data,1);
Mat=zeros(100,ceil(n/100));
Mat(:,1:floor(n/100))=reshape(Data(1:floor(n/100)),[],100);
Mat(1:(n%100),end)=Data(floor(n/100)+1:end);
This would create the 100 row matrix that you want.
However, you can just write a loop
i=1:ceil(n/100)
put stuff in an array and save as ascii file and close the filw pointer
end
This would package the data into smaller files in a loop
댓글 수: 2
Holden Caulfield
2016년 5월 17일
Walter Roberson
2016년 5월 17일
The code Aritra posted does have a conflict between 100 rows and 100 columns.
Walter Roberson
2016년 5월 16일
For numeric row matrix M,
block = 100;
blocked = mat2cell(M, 1, [block * ones(1, floor(M/block)), mod(M, block)]);
댓글 수: 1
Walter Roberson
2016년 5월 17일
If you have a numeric matrix you want to rearrange into groups of fixed size, see buffer()
카테고리
도움말 센터 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!