How to minus two arrays with condition

1 Ansicht (letzte 30 Tage)
Tipnirin Vajanarat
Tipnirin Vajanarat am 6 Nov. 2019
My title may not be clear but lets say if I have two sets of time data, A and B.
These two arrays dont have the same size and I want the value of B-A. From my data A will never be bigger than B in the same row.
For example: A starts at 4th second and B starts at 1st second
A(time) B(time)
1
2.5
4 5
8 11
14 17
how to skip first two of B data in order to get B-A?
appreciate all the answers

Akzeptierte Antwort

Ruger28
Ruger28 am 6 Nov. 2019
Bearbeitet: Ruger28 am 6 Nov. 2019
A = [4 8 14]
B = [1 2.5 5 11 17]
C = B(3:end) - A % take only the variables from 3 to end of vector
A more dynamic approach, assuming B always starts at 1 and A can be at different times
%% Assumng B always starts at 1
A(3:5) = [4 8 14]; % generate A with empty values in first 3 positions
B = [1 2.5 5 11 17];
[rowVal,colVal] = find(A); % find non-zero elements in A
newA = A(colVal); % only uses valid values of A
newB = B(colVal); % only uses same values that A has
C = newB - newA;

Weitere Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by