3

グラフがある場合、多くのデータポイントを特徴とする単純なプロットがあります。これらすべてのポイントをクリックするだけで、matlab がそれらの平均値を取得できるようにする方法はありますか?

ありがとうございました

4

4 に答える 4

2

もう 1 つのオプションは、データ ブラシを使用することです。

Figure ツールバーのブラシ アイコンをクリックし、選択を行います。次に、メニューの [ツール] - [ブラッシング] - [新しい変数の作成] を選択します。デフォルトの変数名のままにすることができますans。この変数には、選択したすべての点の X 座標と Y 座標が含まれます。次に、実行mean(ans(:,2))して Ys の平均を取得します。

于 2010-04-01T00:17:51.280 に答える
1

プログラムで実行したくない場合の最も簡単な方法は、データ ブラシと統計を使用することです。

以前plot(rand(1,200))は自分のデータを生成していました。プロットしたら、[ツール] > [データ統計] に移動します。Y-平均はあなたが探しているものです。

代替テキスト http://www.thinkextensively.com/misc/stackoverflow/images/matlab2.png

特定のデータ セットの平均を取得するには、目的のデータを選択し、メニューで [ツール] > [ブラッシング] > [新しい変数の作成] に移動します。. .. これにより、ボックス化されたデータを含む変数が作成されます。平均を取得するにはmean(ans). ベクトルの 2 番目の値は Y 平均です。 代替テキスト http://www.thinkextensively.com/misc/stackoverflow/images/matlab1.png

于 2010-04-01T01:27:43.830 に答える
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のドキュメントからのものであると主張する必要があります。

于 2010-04-01T00:00:19.310 に答える
0

既にプロットされたデータから平均をプロット (または少なくとも計算) したいと思います。

Matlab File ExchangeのplotAverageを使用すると、非常に簡単に実行できます。

%# 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.
于 2010-04-01T15:54:42.667 に答える