Saya mencari cara cepat untuk membuat garis lurus nilai antara nilai-nilai di Matlab.
Contoh:
a = ([10 20 30 40])
index = 1.5 //a float index
func(a,index); //shall return a value between index 1 and 2. In this case would be the value 15.
Ans = 15
Saya mencari cara cepat untuk membuat garis lurus nilai antara nilai-nilai di Matlab.
Contoh:
a = ([10 20 30 40])
index = 1.5 //a float index
func(a,index); //shall return a value between index 1 and 2. In this case would be the value 15.
Ans = 15
Jawaban:
// define a function that interpolates a vector 'a' defined on a regular grid
// at interpolated support coordinates 'x'
f = @(a, x) interp1( 1:length(a), a, x);
// test vector (given by OP)
a=[10 20 30 40];
// this vector interpolated at coordinate 1.5 gives 15
// (can be a vector of coordinates)
f(a, 1.5)
lakukan apa yang kamu inginkan.
Vektor a
berisi nilai-nilai yang akan diinterpolasi pada koordinat spasi teratur yang berkisar dari 1 hingga panjang a
. Untuk mencapai itu, seseorang dapat menggunakan fungsi Matlab interp1
, yang melakukan interpolasi linier yang diberikan titik dukungan (argumen pertama), nilai pada titik-titik dukungan ini (argumen kedua) dan koordinat interpolasi yang diminta (argumen ketiga). Namun, sesuai permintaan OP untuk melakukan interpolasi dengan pemanggilan fungsi spesifik pendek, fungsi ini f
memungkinkan untuk menginterpolasi vektor a
pada koordinat tertentu (atau vektor koordinat) selama mereka tetap dalam jangkauan [1,length(a)]
.