1

3D の球体に色付きの速度場をプロットする必要があります。次のような関数を探しています。

f(X, Y, Z, V)ここXで、YZは 3 次元座標 ( を使用して形成される 3 次元マトリックスmeshgrid)を表し、V各座標の速度値を決定する 3 次元マトリックスです。V結果は、すべての座標の値に応じて色が変化する 3D カラー プロットになります。

使用しようとしましisosurfaceたが、輪郭が必要なためうまく機能しませんでした。すべての座標に特定の値が必要なだけです。私は使用quiver3しましたが、うまく機能しますが、プロットを矢印ではなく色でマッピングする必要があります。

多くの同様の質問の多くのコメントを読んでいるので、アイデアと解決策を本当に感謝しています(このような: MATLABで4D等高線をプロットする方法(XYZ-V)? )、解決策が見つかりませんでした。

よろしくお願いします。

4

2 に答える 2

1

私はクリスの答えに同意します。scatter3ただし、 がどのように使用さ れているかについて、少し例を示すことは価値があるかもしれません。

初め:

x = rand(1,100);     % x-coordinates
y = rand(1,100);     % y-coordinates
z = rand(1,100);     % z-coordinates
i = rand(1,100)*200;

% specify the indexed color for each point
icolor = ceil((i/max(i))*256);  

figure;
scatter3(x,y,z,i,icolor,'filled');
% if you omit the 'filled' option, you'll just get circles

この最初の例では、変数に基づいて色iサイズを指定します。散布点を の値に依存するiが均一なサイズの色にしたい場合は、次の 2 番目の方法を検討してください。

x = rand(1,100);     % x-coordinates
y = rand(1,100);     % y-coordinates
z = rand(1,100);     % z-coordinates
i = rand(1,100)*200;

% specify the indexed color for each point
icolor = ceil((i/max(i))*256);  

% after setting the color based on i, reset i to be uniform
i = ones(size(i)).*100;

figure;
scatter3(x,y,z,i,icolor,'filled');

色を定義した後にリセットiすると、すべての散布点は同じサイズになります。

于 2013-05-20T12:05:10.020 に答える