2011-08-01 20 views
1

我必須從寫在文本文件中的製表值(兩列)中建立一個函數。該進程,使它如下:在MATLAB中列表值的管理

  1. 命令IMPORTDATA讀取數據文件

    Xp = importdata('Xp.dat','\t',1); 
    
  2. 存儲每一列在一個變量

    x = Xp(1:18304,1); 
    y = Xp(1:18304,2); 
    
  3. 一條曲線擬合兩個變量

    ft = fittype('linearinterp'); 
    datos.f_Xp = fit(x,y,ft); 
    

然而,當我剖析的代碼,我發現我的瓶頸是內置的功能fittype.fittypefittype.evaluatecfit.fevalppvalcfit.subsref 這都與曲線擬合。所以我問自己,我應該如何管理列表值來改進我的代碼。

+0

嘛,總是會有「瓶頸」,相對來說。 「適合(。)」的真正時機是什麼?你認爲它們實際上應該有多好?謝謝 – eat

回答

1

您正試圖將18304個數據點擬合到曲線上。此外,你正在使用linearinterp ...這意味着一個例程正在分段運行。如果你想讓代碼更快地使用更少的數據點。

或許嘗試:

ft = fittype('poly1'); 

不知道是這將是你需要,我沒有訪問數據

0

可能是答案「評估和演示」功能可以在您的工作情況, 一些簡單的例子:

A = '1+4'; eval(A) 
ans = 
    5 
P = 'pwd'; eval(P) 
ans = 
/home/myname 

和更高級一點!

for n = 1:12 
     eval(['M',int2str(n),' = magic(n)']) 
end 

此外,它有一個姐姐名爲 「feval」 猜測,它有什麼作用! [V,d = feval( 'EIG',A) [V,d] = EIG(A)

這裏

function plotf(fun,x) 
y = feval(fun,x); 
plot(x,y) 

你是對的!都是等價的,

退房here,找到更多的相關功能