Cara cepat untuk meratakan nilai menggunakan array yang diberikan di Matlab


0

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:


2
// 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 aberisi 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 fmemungkinkan untuk menginterpolasi vektor apada koordinat tertentu (atau vektor koordinat) selama mereka tetap dalam jangkauan [1,length(a)].

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.