compare two vectors then insert missing element

i have a matrix :
A=[ 1.000 0.5860 0.01403
2.500 0.7395 0.01277
3.500 0.8450 0.01146
4.000 0.8967 0.01173
4.500 0.9476 0.01215
5.000 0.9962 0.01280
6.000 1.0973 0.01367
6.500 1.1398 0.01457
7.000 1.1889 0.01515
8.000 1.2574 0.01915
8.500 1.2816 0.02234
9.500 1.3300 0.02731
10.500 1.3267 0.03649 ]
for the first column let say its
B=[ 1.000
1.500
2.000
2.500
3.500
4.000
4.500
5.000
5.500
6.000
6.500
7.000
7.500
8.000
8.500
9.000
9.500
10.000
10.500]
i want to compare A(:1) with b then insert missing rows to make A(:,1) = b , then perform interpolation for A(:,2) and A(:,3) new rows
thanks

1 Kommentar

Bq = sort(union(B, A(:,1))); % the query points are from B and A(:,1)
C = interp1(A(:, 1), A(:, 2:end), Bq); % Interpolation
C = [Bq C]; % The result

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Stephen23
Stephen23 am 29 Apr. 2021
Simpler:
A=[ 1.000 0.5860 0.01403
2.500 0.7395 0.01277
3.500 0.8450 0.01146
4.000 0.8967 0.01173
4.500 0.9476 0.01215
5.000 0.9962 0.01280
6.000 1.0973 0.01367
6.500 1.1398 0.01457
7.000 1.1889 0.01515
8.000 1.2574 0.01915
8.500 1.2816 0.02234
9.500 1.3300 0.02731
10.500 1.3267 0.03649 ];
B = 1:0.5:10.5;
C = interp1(A(:,1),A,B(:))
C = 20×3
1.0000 0.5860 0.0140 1.5000 0.6372 0.0136 2.0000 0.6883 0.0132 2.5000 0.7395 0.0128 3.0000 0.7923 0.0121 3.5000 0.8450 0.0115 4.0000 0.8967 0.0117 4.5000 0.9476 0.0121 5.0000 0.9962 0.0128 5.5000 1.0467 0.0132

Kategorien

Mehr zu Interpolation finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

am 29 Apr. 2021

Beantwortet:

am 29 Apr. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by