How to trim down data in an array

9 ビュー (過去 30 日間)
Telema Harry
Telema Harry 2021 年 11 月 10 日
編集済み: Walter Roberson 2025 年 7 月 8 日
Hi,
I have a column vector containing 1000 element.
I really need to reduce the size of the vector to 100 to be able to use it further in my program.
The reduced data must contain the first and last element of the original vector.
My current code is shown below. It does not capture the last element.
Thanks for your help.
a = 1;
b = 200;
A = (b-a).*rand(1000,1) + a;
%
tt = floor(length(A)/10);
if tt == 0
tt = 1;
end
red_A = A(1:tt:end)
  4 件のコメント
Ünal Dikmen
Ünal Dikmen 2025 年 7 月 8 日
編集済み: Walter Roberson 2025 年 7 月 8 日
yes, you are right. I thought you wanted to get especially the last element in this vector. if you want to get a constant number of elements (100 as in this example) in a vector, you can use code below:
noel = 100;
npts = numel(A);
interval = ceil(npts-1)/noel;
red_A=A(1:interval:npts);
using this code you can get the number of elements noel in the vector.
Walter Roberson
Walter Roberson 2025 年 7 月 8 日
a = 1;
b = 200;
A = (b-a).*rand(1000,1) + a;
noel = 100;
npts = numel(A);
interval = ceil(npts-1)/noel;
red_A=A(1:interval:npts);
Warning: Integer operands are required for colon operator when used as index.
size(red_A)
ans = 1×2
101 1
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Your code has the warning about non-integer increment, and produces a vector that is 1 element too long
red_A(end) == A(end)
ans = logical
1
But at least the last element appears to be correct.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2021 年 11 月 10 日
編集済み: Walter Roberson 2025 年 7 月 8 日
tt = floor(linspace(1,length(A),100));
red_A = A(tt) ;
  2 件のコメント
Telema Harry
Telema Harry 2021 年 11 月 10 日
Thank you
Ünal Dikmen
Ünal Dikmen 2025 年 7 月 8 日
this code also an elegant way :)

サインインしてコメントする。

その他の回答 (1 件)

KSSV
KSSV 2021 年 11 月 10 日
a = 1;
b = 200;
A = (b-a).*rand(1000,1) + a;
x1 = 1:length(A) ;
x2 = linspace(1,length(A),100) ;
Anew = interp1(x1,A,x2) ;
  1 件のコメント
Telema Harry
Telema Harry 2021 年 11 月 10 日
Thank you

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by