4

重複の可能性:
matlab: 多数のデータポイントを含む散布図

それぞれ 315,000 要素の 3 つのベクトルがあります。X、Y、および Z。X と Y は座標で、Z は値です。座標を 2D グラフの点としてプロットする必要があります。Z は、X と Y の各座標のカラー インジケーターです。「散布」コマンドを試しましたが、非常に遅いです。誰かがより良い方法を提案しますか?

ありがとう!

4

3 に答える 3

1

探しているカラーマップの種類に応じて、次のようなものを試すことができます

zmin=min(Z);
zmax=max(Z);
map=colormap;
color_steps=size(map,1);

hold on
for i=1:color_steps
    ind=find(Z<zmin+i*(zmax-zmin)/color_steps & Z>=zmin+(i-1)*(zmax-zmin)/color_steps);
    plot(X(ind),Y(ind),'o','Color',map(i,:));
end

発見は少し高価ですが、 よりも速いようですscatter。これをさらに最適化できると確信しています。

于 2013-01-14T19:20:38.390 に答える
0

ここでclineMATLABファイル交換から試してください。それはまさにあなたが望むことをしているように見えます。

于 2013-01-14T18:43:52.447 に答える
0

SCATTER 関数が原因ではなく、ベクトルのサイズが大きいためにコードが遅くなります。それらをより小さなサイズのベクトル (たとえば、それぞれ 10 要素) に分割し、各ベクトルをセル配列のセルに入れてみてください。次に、cell 配列をループ処理し、小さなベクトルを個別に分散させて、メモリに大量のデータが読み込まれないようにします。

hold on
for i=1:numel(XcoordCellArray):
  scatter(XcoordCellArray{i},YcoordCellArray{i},S,ZcoordCellArray{i})
end
于 2013-01-14T19:02:42.880 に答える