2013-06-18 5 views
0

Я хочу сделать подгонку кривой для этого графика f только в той части, где x составляет от 0,0001 до 0,007, и где y составляет от 0,00000001 до 0,0000009. i hv так много пробовал в инструментальных ящиках с кривой, используя правило исключения, но не получал его. Любая помощь будет принята с благодарностью. Спасибо!Кривая подгонка части исходного участка в matlab

x =0:32/1024000:32; 

m = (x <= 16) .* ... % select the first part 
( 0.0133 0.00002./((cos(pi/4)./sinh(0.5*log(0.05*x))) coth(0.5*log(0.05*x)))) ... 
(x > 16) .* ... % select second part 
( 0.0133 0.00002./((cos(pi/4)./sinh(0.5*log(0.05*(32-x)))) coth(0.5*log(0.05*(32-x))))) ; 

k = (x <= 16) .* ... % select the first part 
( -0.00004*cos(pi/4)./(cosh(0.5*log(0.05*x)) sin(pi/4))) - ... 
(x > 16) .* ... % select second part 
( -0.00004*cos(pi/4)./(cosh(0.5*log(0.05*(32-x))) sin(pi/4))) ; 

z = complex(m,k); 
y = ifft(z); 
f = abs(y); 
figure(1); 
plot(x,(f)); 

ответ

0

Вы хотите excludedata функцию с именем range метода. У меня возникли проблемы с пониманием вашей функции, так вот пример:

% x1 and y1 defined over the entire range 
x1 = 1:1000; 
y1 = 100*sin(x1/500) + 10*rand(size(x1)); 

% exclude y values less than 20 and greater than 60 
e = excludedata(x1', y1', 'range', [20,60]); 

% calculate a linear fit 
f = fit(x1', y1', 'poly1', 'Exclude', e); 

figure 
hold on 
plot(f,x1,y1) 

data with fit from a range of the data

Смежные вопросы