Resizing an array - removing elements

11 ビュー (過去 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 Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by