从matlab绘图获得平均值?

时间:2010-03-31 23:20:26

标签: matlab plot average

当我有图表时,我有一个简单的情节,其中包含许多数据点。有没有办法让我可以简单点击所有这些点并让matlab给我一个平均值?

谢谢

4 个答案:

答案 0 :(得分:2)

另一种选择是使用data brush

单击图工具栏上的画笔图标并进行选择。然后在菜单Tools-Brushing-Create new variable中选择。您可以保留默认变量名称ans。此变量将包含所有选定点的X和Y坐标。然后运行mean(ans(:,2))以获得Y的平均值。

答案 1 :(得分:1)

如果您不想以编程方式执行此操作,最简单的方法是使用数据画笔和统计信息。

我使用plot(rand(1,200))生成我的数据。绘制完成后,转到工具>数据统计。 Y-mean就是你要找的。

alt text http://www.thinkextensively.com/misc/stackoverflow/images/matlab2.png

要获取特定数据集的平均值,请选择所需数据,然后在菜单中转到工具>刷牙>创建新变量。 。 ..这会创建一个包含盒装数据的变量。得到平均值mean(ans)。向量中的第二个值是Y均值。 alt text http://www.thinkextensively.com/misc/stackoverflow/images/matlab1.png

答案 2 :(得分:0)

您想要计算的值的平均值不是很清楚。我假设,它是y坐标。

我会使用RBBOX功能在图上选择一组点。

试试这段代码:

% sample data
data = rand(1,100);
datax = 1:numel(data);

% draw simple plot
plot(data,'.')

% select the points with mouse and get coordinates
k = waitforbuttonpress;
point1 = get(gca,'CurrentPoint');    % button down detected
finalRect = rbbox;                   % return figure units
point2 = get(gca,'CurrentPoint');    % button up detected
point1 = point1(1,1:2);              % extract x and y
point2 = point2(1,1:2);
pmin = min(point1,point2);
pmax = max(point1,point2);

% find the data selected and get average of y values
idx = data >= pmin(2) & data <= pmax(2) & datax >=pmin(1) & datax <= pmax(1);
dataAverage = mean(data(idx));

我必须声明此代码的大部分来自rbbox文档。

答案 3 :(得分:0)

我想你想要从已绘制的数据中绘制平均值(或至少计算它)。

使用plotAverage中的Matlab File Exchange,您可以轻松完成。

%# plot some data
figure
plot(randn(100,5))

%# add the average line at every 5th point
[plotHandles, average] = plotAverage([],5:5:95);

%# and you have a line on the plot, and its handles and data in the workspace.