2016-02-02 185 views
0

據我所知,在我的問題的答案的任何地方沒有找到任何答案。在Matlab中我認爲自己很體面。Matlab - 軌跡的累積分佈

我有記錄的腫瘤的軌跡與時間like on this image。我想計算累計分佈,它將顯示腫瘤從x = 0的理想位置到時間vs位移like on this picture generated with another software

累積圖表意味着我們可以找到腫瘤在採集期間花費的特定位置以外的總時間。您會發現位置0處的腫瘤位置是整個採集時間(〜300秒)的長度。如果我們正在尋找腫瘤花費在離理想位置1.1毫米以外的時間,則表示約100秒。2.8mm外的腫瘤時間變得非常接近0s。

任何能夠幫助我獲得這樣的代碼都會很棒。我強烈地意識到,與cumsum,cdf等有關,但我真的沒有設法找到一個合適的功能。我的下一個選擇是自己裝箱併爲其編寫代碼。

謝謝你的幫助。

回答

0

您可以使用​​找到分佈。然後通過計算向後cumsum()您可以繪製所需的繪圖。

clc, clear all, close all 
seconds = 303;    % Amount of time that passed during the test 
datapoints = 3000;   % Amount of Datapoints in your vector 

x = randn(datapoints,1); 
[counts,centers] = hist(abs(x),sort([0;unique(abs(x))])); 

sumX = sum(counts); 
cumsumX = cumsum(counts); 
time = (sumX - [0 cumsumX(1:end-1)])*seconds/datapoints; % Normalize result with factor 

figure 
plot(centers, time) 
+0

嗨丹尼斯Klopfer, 這絕對幫助我對我正在尋找。不過,我希望能夠將時間最後的情節作爲y座標。如果我們有位置與時間的軌跡,如下面的代碼:'x = randn(3000,1); 時間= cumsum(一(3000,1));?',這將是繪製 '圖(中心,time'的最佳方式 感謝, 文森特 – Vinci

+0

我已經更新我的回答如果answeres。如果你接受答案,我會很高興,如果你有更多的問題,請告訴我。 –

+0

很棒:)非常感謝! – Vinci