Can I divide a linear array by a number which larger than its size ?
이전 댓글 표시
I am having a cell array. Each element of the cell array is a linear array . These arrays are of different sizes. when diving each array to some equal parts then I am not getting consistent parts. Suppose I want to divide each cell array by 20. When the size is greater than 20 then its ok. but when less than 20 then I am not getting any consistent parts. I want to divide each linear array to 20 equal parts. whatever the size is I dont want any padding of values. If the array size is 1×17 and diving with 20 will give 20 equal parts . The partition size will be less than 1. How can I do this ?
댓글 수: 2
Zara Khan
2019년 3월 16일
Image Analyst
2019년 3월 16일
Unless you want to do some interpolation/resizing, you can't because each array in each cell is not a multiple of 20.
답변 (2개)
KSSV
2019년 3월 16일
0 개 추천
You interpolate your data into your desired size and then reshape. Read about interp1.
Walter Roberson
2019년 3월 16일
Next20 = @(V) ceil(length(V)/20) * 20;
Interp20 = @(V) interp1(V, linspace(1, length(V), Next20(V)));
Split20 = @(V) mat2cell(V, 1, 20*ones(1, length(V)/20));
new_cell = cellfun( @(V) Split20(Interp20(V)), cell_array, 'Uniform', 0);
댓글 수: 8
Zara Khan
2019년 3월 17일
Walter Roberson
2019년 3월 17일
Your task is not possible then. It is not possible to have a number composed of only 85% of the bits of a regular number so that you can divide 17 numbers into 20 slots without padding.
If what you want is to count the number of 1's, then why not pad with 0's, since that will not affect the total?
Zara Khan
2019년 3월 17일
Walter Roberson
2019년 3월 17일
Of course you are not getting uniform partition size: you are not doing padding, so if the input is not an exact multiple of ndivisions, you cannot get uniform partition sizes.
Zara Khan
2019년 3월 17일
Walter Roberson
2019년 3월 17일
Zara Khan
2019년 3월 17일
Image Analyst
2019년 3월 17일
Attach your m-file with the paper clip icon so we can solve this.
카테고리
도움말 센터 및 File Exchange에서 Descriptive Statistics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!