Matrix subtraction every two adjacent column

Hello everyone,I have a matrix x with MxN = (3750X666) and I want to subtract every two adjacent column,normalize it and create a new matrix y= [x(:,n)-x(:,1:n-1))] ./ x(;,n), n start with 2nd column and end with N, how can I do it?

4 件のコメント

Matt J
Matt J 2021 年 2 月 12 日
MUHAMMAD SYAKIR YUSRI
MUHAMMAD SYAKIR YUSRI 2021 年 2 月 12 日
編集済み: MUHAMMAD SYAKIR YUSRI 2021 年 2 月 12 日
Yes its the same question, but it doens't perform the subtraction throughout the whole length (666). I need it to perform the subraction of the every two adjacent column and normalize it for the whole length.
Matt J
Matt J 2021 年 2 月 12 日
Here is the solution you were given. As you can see, it does 664 subtractions, which is exactly the number of pairs available (separated by a stride of 2) along the whole width of your matrix.
x=rand(3750,666);
y=(x(:,3:end)-x(:,1:end-2))./x(:,2:end-1);
whos y
Name Size Bytes Class Attributes y 3750x664 19920000 double
MUHAMMAD SYAKIR YUSRI
MUHAMMAD SYAKIR YUSRI 2021 年 2 月 12 日
Thank Matt, i was confused earlier. Thank you for the explanation.

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

回答 (2 件)

Stephan
Stephan 2021 年 2 月 12 日

0 投票

% sample data
A = randi(10,5,3)
% second col minus first and so on
B = A(:,2:end) - A(:,1:end-1)
% first col minus second and so on
C = A(:,1:end-1) - A(:,2:end)

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by