Matlab - 轨迹的累积分布
Matlab - Cumulative Distribution of trajectory
据我所知,我没有在任何地方找到我的问题的答案。我认为自己在 Matlab 方面相当不错。
我记录了肿瘤随时间变化的轨迹 like on this image. I would like to compute cumulative distribution that would show the time vs displacement of the tumor from its ideal position at x=0 like on this picture generated with another software。
累积图的意思是我们可以找到肿瘤在获取过程中在某个位置之外所花费的总时间。你会看到肿瘤在位置 0 的位置是整个采集时间的长度(~300 秒)。如果我们正在寻找肿瘤在距离理想位置 1.1 毫米之外的时间,它会指示~100 seconds.The 肿瘤在 2.8mm 外的时间变得非常接近 0s。
任何能帮助我获得这样的代码都很棒。我强烈感觉到与 cumsum、cdf 等有关,但我真的没有找到合适的函数。我的下一个选择是自己将其装箱并为其编写代码。
谢谢你的帮助。
您可以使用 hist(x)
查找分布。然后通过向后计算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)
据我所知,我没有在任何地方找到我的问题的答案。我认为自己在 Matlab 方面相当不错。
我记录了肿瘤随时间变化的轨迹 like on this image. I would like to compute cumulative distribution that would show the time vs displacement of the tumor from its ideal position at x=0 like on this picture generated with another software。
累积图的意思是我们可以找到肿瘤在获取过程中在某个位置之外所花费的总时间。你会看到肿瘤在位置 0 的位置是整个采集时间的长度(~300 秒)。如果我们正在寻找肿瘤在距离理想位置 1.1 毫米之外的时间,它会指示~100 seconds.The 肿瘤在 2.8mm 外的时间变得非常接近 0s。
任何能帮助我获得这样的代码都很棒。我强烈感觉到与 cumsum、cdf 等有关,但我真的没有找到合适的函数。我的下一个选择是自己将其装箱并为其编写代码。
谢谢你的帮助。
您可以使用 hist(x)
查找分布。然后通过向后计算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)