2014-06-09 2 views
-1

길이가 185437 인 큰 벡터가 있습니다. 새 값을 만들려고합니다.이 평균값을 가진 벡터를 다시 만들었지 만 x 길이가 180 일 때 새 길이가 필요합니다. 예 :대형 벡터에서 작은 벡터를 만드는 방법 ...? MATLAB

delay=0.1 
    x_axis=0:delay:180 

y 축 (이 새 벡터)은이 x_axis와 동일한 크기가되어야하므로 플롯 할 수 있습니다. 다음과 같이 시도했습니다.

values_delay_sum_plot=mean(reshape(values_delay_sum,1/delay,length(values_delay_sum)*delay)); 

그러나 작동하지 않습니다. 첫 번째 오류는 정수 값에 대한 것이었고 나중에 벡터 크기를 변경할 수 없습니다. values_delay_sum은 나의 큰 벡터이며, 그로부터 내 플롯을 위해 새로운 것을 만들고 싶습니다. 사전에 감사합니다.

+3

더 나은 당신이 –

+0

친애을 원하는 설명해주십시오, I x 축 0 : 0.1 : 180에 대해 이러한 조건 내에서 플롯 할 수 있도록 내 큰 벡터의 크기를 조정해야합니다. values_delay_sum (1 : 1800)처럼 크기를 조정하지 마십시오. 이 작은 하나의 큰 벡터의 평균값을 갖고 싶기 때문에 분석의 통계적 중요성을 잃지 않습니다. – user3464577

+0

데이터를 보면 : length (Values_delay_sum) * delay'는'185437 * 0.1 = 18 543.7'이고 이것은'reshape'에 사용할 수있는 정수가 아닙니다. 그리고 당신이 고쳐 만들 때, 크기는 변화하면 안된다. – Vuwox

답변

0

@Schorsch가 말했듯이, 나는 당신이 interp1 기능이 필요하다고 생각합니다. 이 같은 아마 뭔가 :

x_axis=linspace(0,185437,1801); 
y_axis=interp1(values_delay_sum,x_axis); 
plot(x_axis,y_axis); 

그냥 새로운 벡터를 플롯하려는 경우가 아니라 해당한다 원래 X_AXIS 값으로, 단지 줄거리 :

plot(y_axis) 
관련 문제