Matlab에서 주어진 배열을 사용하여 값을 선형화하는 빠른 방법

Matlab에서 주어진 배열을 사용하여 값을 선형화하는 빠른 방법

Matlab의 값 사이의 값을 선형화하는 빠른 방법을 찾고 있습니다.

예:

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

답변1

// 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)

당신이 원하는 것을합니다.

벡터에는 a1부터 길이까지의 일정한 간격의 좌표에 보간할 값이 포함되어 있습니다 a. 이를 달성하기 위해 interp1지원점(첫 번째 인수), 이러한 지원점의 값(두 번째 인수) 및 요청된 보간 좌표(세 번째 인수)가 주어지면 선형 보간을 수행하는 Matlab 함수를 사용할 수 있습니다 . 그러나 짧은 특정 함수 호출로 보간을 수행하라는 OP의 요청에 따라 이 함수를 사용 하면 범위 내에 유지되는 한 특정 좌표(또는 좌표 벡터)에서 f벡터를 보간할 수 있습니다 .a[1,length(a)]

관련 정보