2016-02-02 99 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