Resizing an array - removing elements

조회 수: 12 (최근 30일)
S
S 2016년 1월 6일
I have an array of data, in this case 61 rows long. I need to reshape this into 3s - LSB1 = reshape(LSB,3,[]); but as 61 isn't divisible by 3, it wont work.
I want to be able to remove the last value of from the vector in this case, via an if statement (sometimes maybe to remove the last 2 values if there were 62 rows instead) i.e. an if statement to check divisibility by 3 and then to remove the correct number of elements from the end of the array.
Thank you
  댓글 수: 1
Ahmad Kanzu Syauqi Firdaus
Ahmad Kanzu Syauqi Firdaus 2018년 9월 3일
you can also use imresize, especially when you want to decrease array dimension without changing array content generally. example:
X=rand(105,1); M=61; Xnew=imresize(X,[M,1]);

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

채택된 답변

Star Strider
Star Strider 2016년 1월 6일
If you only want 60 rows in your array, just redefine a new array to have 60 rows:
LSB = rand(61,1); % Create Data
LSBnew = LSB(1:60,:);
LSB1 = reshape(LSBnew, [], 3);
  댓글 수: 6
S
S 2016년 1월 8일
편집: S 2016년 1월 8일
Thanks again!
One last thing, is there a way to reshape the vector so that elements 1,2 & 3 go across the new matrix (and then 3,4,5 etc) rather than going down the matrix?
so for a vector from 1-9, the reshaped one would read:
[1 2 3, 4 5 6, 7 8 9] rather than
[1 4 7, 2 5 8, 3 6 9]
Star Strider
Star Strider 2016년 1월 8일
My pleasure!
Since you are starting with a column vector, reverse the last two arguments in reshape and transpose the result:
x = [1:9]';
y = reshape(x, 3, [])';
This should do what you want.

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

추가 답변 (1개)

Stephen23
Stephen23 2016년 1월 6일
편집: Stephen23 2016년 1월 6일
Here is an example showing how this can be done automatically:
>> X = rand(4,3); % 4*3 = 12, not divisible by 5
>> R = 5;
>> reshape(X(1:end-mod(numel(X),R)),R,[])
ans =
0.79221 0.93399
0.95949 0.67874
0.65574 0.75774
0.035712 0.74313
0.84913 0.39223

카테고리

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

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by